sys 모듈은 인터프리터가 제공하는 변수와 함수를 직접 제어하기 위해 사용합니다.
1. sys.argv
아래와 같이 입력받은 파라미터를 list 형태로 읽어올 수 있습니다.
import sys
print(sys.argv)
myargv = sys.argv
for arg in myargv:
print(arg)
##### terminal에서 실행한 결과
(venv) D:\dev\workspace\python\helloworld>python main.py
['main.py']
main.py
(venv) D:\dev\workspace\python\helloworld>python main.py a b c
['main.py', 'a', 'b', 'c']
main.py
a
b
c
2. sys.getrefcount()
특정 객체가 몇 번이나 참조됐는지 알 수 있습니다.
Windows 에서는 최초 reference count는 2 이고 Linux 에서는 최초 reference count가 3 입니다. 아래는 Windows 환경에서의 코드입니다.
최초값이 설정되는 이유는 초기화 하면서 내부적으로 사용하는 횟수가 있기 때문입니다.
a = [1, 2, 3]
print(sys.getrefcount(a) - 1)
b = a
print(sys.getrefcount(a) - 1)
c = b
print(sys.getrefcount(a) - 1)
######
Windows 환경에서 각각 1, 2, 3 이 출력됩니다.
------
d = 1
print(sys.getrefcount(d))
######
이 경우 저는 100 이 출력됩니다. 1 이라는 객체가 여러번 사용되기 때문입니다.
3. sys.stdout.write()
이 함수는 print() 와 동일한 동작을 수행하는 것처럼 보입니다만 조금 차이가 있습니다.
print()는 자동으로 개행하지만 sys.stdout.write()는 자동으로 개행하지 않습니다. '\n'을 통해 개행할 수 있습니다.
그리고 아래 stackoverflow 글에 의하면
print는 print('Hello', 'world', 2+3, file=open('file.txt', 'w')) 같은 형식으로 파일로의 출력도 가능합니다. (결과: file.txt 에 Hello World 5 가 입력됨)
- stackoverflow.com/questions/3263672/the-difference-between-sys-stdout-write-and-print
sys.stdout.write('aa')
print('bb')
######
aabb
4. sys.exit()
Python 프로그램 실행 중 Ctrl + Z 또는 Ctrl + D 를 입력하여 프로그램을 종료합니다.
import sys
sys.exit()
5. sys.path
Python 모듈이 저장되어 있는 위치들을 나타냅니다. 이 코드를 통해 반환되는 경로들에 위치한 모듈들은 어디에서나 불러올 수 있게됩니다.
sys.path.append("c:/mylib") 코드를 수행한다면 이후부터는 c:\mylib 디렉토리 내의 Python 모듈들을 가져다가 사용할 수 있게됩니다.
import sys
print(sys.path)
######
['D:\\dev\\workspace\\python\\helloworld', 'D:\\dev\\workspace\\python\\helloworld', 'C:\\Users\\devji\\AppData\\Local\\Programs\\Python\\Python39\\python39.zip', 'C:\\Users\\devji\\AppData\\Local\\Programs\\Python\\Python39\\DLLs', 'C:\\Users\\devji\\AppData\\Local\\Programs\\Python\\Python39\\lib', 'C:\\Users\devji\\AppData\\Local\\Programs\\Python\\Python39', 'D:\\dev\\workspace\\python\\helloworld\\venv', 'D:\\dev\\workspace\\python\\helloworld\\venv\\lib\\site-packages']
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python 표준 라이브러리 (random) (0) | 2021.03.07 |
---|---|
Python 표준 라이브러리 (날짜, 시간 -datetime) (0) | 2021.03.01 |
Python 표준 라이브러리 (디렉토리(폴더) -directory(folder)-, os, glob) (0) | 2021.03.01 |
PyCharm의 Python console(파이썬 콘솔) 한글 깨짐 문제 해결 (0) | 2021.03.01 |
Python 표준 라이브러리 (파일 -file-) (0) | 2021.03.01 |