Python의 sys 모듈은 시스템별 매개 변수 또는 함수에 액세스하거나 조작해야 할 때 사용됩니다.
전반적으로 sys 모듈은 많은 시스템별 매개변수 및 기능에 대한 액세스를 제공하는 강력한 도구입니다. Python 프로그램을 보다 유연하고 구성 가능하며 최적화하기 위해 다양한 시나리오에서 사용할 수 있습니다.
다음은 sys 모듈을 사용하는 방법에 대한 몇 가지 예입니다.
명령줄 인수: sys.argv를 사용하여 Python 스크립트에 전달된 명령줄 인수에 액세스할 수 있습니다. 이는 스크립트를 보다 유연하고 구성 가능하게 만들려는 경우에 유용합니다.
sys.argv: 이것은 Python의 목록으로, 스크립트에 전달된 명령줄 인수를 포함합니다. 첫 번째 인수는 스크립트 자체의 이름입니다. 예:
import sys
print("This script is called:", sys.argv[0])
if len(sys.argv) > 1:
print("The command line arguments are:", sys.argv[1:])
else:
print("No command line arguments provided.")
python script.py arg1 arg2 명령으로 이 스크립트를 실행하면 다음과 같이 출력됩니다.
This script is called: script.py
The command line arguments are: ['arg1', 'arg2']
프로그램 종료: sys.exit()를 사용하여 Python 프로그램을 종료할 수 있습니다. 특정 조건에서 프로그램을 종료하고 싶을 때나 에러가 났을 때 유용합니다.
sys.exit(): 종료 코드인 선택적 인수를 사용합니다. 일반적으로 종료 코드 0은 성공을 의미하고 다른 값은 오류가 발생했음을 의미합니다. 예:
import sys
print("Before sys.exit()")
sys.exit(1)
print("After sys.exit()") # This line will not be executed
이 스크립트는 다음을 출력합니다.
Before sys.exit()
종료 코드 1로 종료합니다.
표준 스트림: sys.stdin, sys.stdout 및 sys.stderr을 사용하여 각각 표준 입력에서 읽고 표준 출력에 쓰고 오류 메시지를 표준 오류에 쓸 수 있습니다. 이는 사용자와 상호 작용하거나 오류 메시지를 기록하려는 경우에 유용합니다.
예:
import sys
# Read a line of input from the user
name = input("What's your name? ")
# Print a greeting to the user
print("Hello, " + name + "!")
# Write an error message to stderr
sys.stderr.write("This is an error message.\n")
이 스크립트를 실행하면 사용자에게 이름을 입력하고 콘솔에 인사말을 인쇄하고 오류에 오류 메시지를 쓰라는 메시지가 표시됩니다. 스트리밍합니다.
시스템별 정보: sys.platform을 사용하여 Python 인터프리터가 실행 중인 플랫폼을 확인하고, sys.version_info를 사용하여 사용 중인 Python 버전에 대한 정보를 얻고, sys.maxsize를 사용하여 현재 시스템에서 정수의 최대값을 얻을 수 있습니다. 플랫폼. 이는 플랫폼별 코드를 작성하거나 성능을 최적화해야 할 때 유용할 수 있습니다.
import sys
if sys.platform.startswith('win'):
print("Running on Windows.")
elif sys.platform.startswith('linux'):
print("Running on Linux.")
elif sys.platform.startswith('darwin'):
print("Running on macOS.")
else:
print("Running on an unknown platform.")
이 스크립트는 sys.platform의 값을 확인하고 스크립트가 실행 중인 플랫폼을 나타내는 메시지를 출력합니다. sys.platform에는 버전 번호와 같은 추가 정보가 포함될 수 있으므로 startswith() 메서드는 플랫폼 이름이 특정 문자열로 시작하는지 확인하는 데 사용됩니다.
예를 들어 Windows에서 이 스크립트를 실행하면 다음과 같이 출력됩니다.
Running on Windows.
Linux에서 실행하면 다음과 같이 출력됩니다.
Running on Linux.
macOS에서 실행하면 다음과 같이 출력됩니다.
런타임 정보: sys.getsizeof()를 사용하여 메모리에 있는 객체의 크기를 가져오고, sys.getrecursionlimit()를 사용하여 Python 함수 호출에 대한 재귀 제한을 얻고, sys.getrefcount()를 사용하여 객체의 참조 횟수를 얻을 수 있습니다. . 이는 메모리 사용을 최적화하거나 개체 참조와 관련된 문제를 디버그해야 할 때 유용할 수 있습니다.
import sys
my_list = [1, 2, 3, 4, 5]
print("The size of my_list is:", sys.getsizeof(my_list), "bytes")
my_dict = {'a': 1, 'b': 2, 'c': 3}
print("The size of my_dict is:", sys.getsizeof(my_dict), "bytes")
my_str = "Hello, world!"
print("The size of my_str is:", sys.getsizeof(my_str), "bytes")
my_int = 12345
print("The size of my_int is:", sys.getsizeof(my_int), "bytes")
이 스크립트는 4개의 다른 개체(목록, 사전, 문자열 및 정수)를 만들고 sys를 사용하여 각각의 크기를 인쇄합니다. getsizeof(). 이 스크립트를 실행하면 다음과 같이 출력됩니다.
The size of my_list is: 104 bytes
The size of my_dict is: 240 bytes
The size of my_str is: 59 bytes
The size of my_int is: 28 bytes
보시는 바와 같이 개체의 크기는 유형과 내용에 따라 달라질 수 있습니다. 일반적으로 큰 개체는 작은 개체보다 크기가 크며 사전과 같은 복잡한 구조를 가진 개체는 정수와 같은 간단한 개체보다 크기가 큽니다. 이 정보는 Python 프로그램에서 메모리 사용을 최적화해야 할 때 유용할 수 있습니다.
'파이썬' 카테고리의 다른 글
[Python]#20 수학 모듈 math 활용하기 (0) | 2023.03.10 |
---|---|
[Python]#19 'platform' 라이브러리 (0) | 2023.03.08 |
[Python]#16 표준 라이브러리 - OS (0) | 2023.03.05 |
[Python]#15 기본 내장 함수 사용법 (1) | 2023.03.03 |
[Python]#14 예외 처리 & 오류 (0) | 2023.03.02 |