수색…


소개

sys 모듈은 sys.argv 의 명령 행 매개 변수 또는 sys.exit() 함수와 같은 프로그램의 런타임 환경에 관한 함수 및 값에 대한 액세스를 제공하여 프로그램 흐름의 어느 지점에서나 현재 프로세스를 종료합니다.

모듈로 깔끔하게 분리되어 있지만 실제로는 내장되어 있으므로 정상적인 상황에서는 항상 사용할 수 있습니다.

통사론

  • sys 모듈을 가져 와서 현재 네임 스페이스에서 사용할 수 있도록합니다.

    import sys
    
  • sys 모듈의 특정 함수를 현재 네임 스페이스로 직접 가져옵니다.

    from sys import exit
    

비고

모든 sys 모듈 구성원에 대한 자세한 내용은 공식 문서를 참조하십시오.

명령 줄 인수

if len(sys.argv) != 4:         # The script name needs to be accounted for as well.
    raise RuntimeError("expected 3 command line arguments")

f = open(sys.argv[1], 'rb')    # Use first command line argument.
start_line = int(sys.argv[2])  # All arguments come as strings, so need to be
end_line = int(sys.argv[3])    # converted explicitly if other types are required.

더 크고 세련된 프로그램에서는 직접 명령하는 대신 명령 행 인수를 처리하기 위해 클릭 과 같은 모듈을 사용합니다.

스크립트 이름

# The name of the executed script is at the beginning of the argv list.
print('usage:', sys.argv[0], '<filename> <start> <end>')

# You can use it to generate the path prefix of the executed program
# (as opposed to the current module) to access files relative to that,
# which would be good for assets of a game, for instance.
program_file = sys.argv[0]

import pathlib
program_path = pathlib.Path(program_file).resolve().parent

표준 오류 스트림

# Error messages should not go to standard output, if possible.
print('ERROR: We have no cheese at all.', file=sys.stderr)

try:
    f = open('nonexistent-file.xyz', 'rb')
except OSError as e:
    print(e, file=sys.stderr)

프로세스를 조기에 끝내고 종료 코드를 반환합니다.

def main():
    if len(sys.argv) != 4 or '--help' in sys.argv[1:]:
        print('usage: my_program <arg1> <arg2> <arg3>', file=sys.stderr)
        
        sys.exit(1)    # use an exit code to signal the program was unsuccessful

    process_data()


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow