import sys sys.argv # Новое в Python 3.10 sys.orig_argv
Функция sys.argv
модуля sys
возвращает список параметров командной строки, передаваемых скрипту Python.
Выражение argv[0]
- это имя скрипта и зависит от операционной системы, является ли это полный путь или нет.
Если команда была выполнена с помощью параметра командной строки -c
для интерпретатора, то argv[0]
устанавливает строку '-c'
. Если имя скрипта не было передано интерпретатору Python, то argv[0]
- это пустая строка.
Чтобы перебрать стандартный ввод или список файлов, приведенных в командной строке, смотрите модуль fileinput
.
Примечание: в Unix, параметров командной строки передаются байтами из ОС. Python декодирует их с помощью кодировки файловой системы и обработчика ошибок "surrogateescape". Если нужны исходные байты, то их можно получить с помощью [os.fsencode(arg) for arg in sys.argv]
.
Функция sys.orig_argv
(доступна с версии Python 3.10) возвращает список исходных аргументов командной строки, переданных исполняемому файлу Python.
Для удобного разбора параметров, переданных в командную строку стоит посмотреть в сторону встроенных модулей, специализирующихся на этой проблеме argparse
и getopt
.
argv
:Создадим файл test.py
со следующим содержимым:
# test.py import sys, os print('Список параметров, переданных скрипту') print(sys.argv) print('Исходные байты') print([os.fsencode(arg) for arg in sys.argv])
Запустим файл test.py
следующим образом:
$ python3 test.py -file test.txt -pi 3.14 # Список параметров, переданных скрипту # ['test.py', '-file', 'test.txt', '-pi', '3.14'] # Исходные байты # [b'test.py', b'-file', b'test.txt', b'-pi', b'3.14']
orig_argv
:Создадим файл test.py
со следующим содержимым:
# test.py import sys print('Список параметров, переданных скрипту') print(sys.orig_argv)
Запустим файл test.py
следующим образом:
$ python3 test.py -file test.txt -pi 3.14 # Список параметров, переданных скрипту # ['python3', 'test.py', '-file', 'test.txt', '-pi', '3.14']