Python Language
системный
Поиск…
Вступление
Модуль 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()