Сообщить об ошибке.

Функция argv модуля sys в Python

Получение списка параметров командной строки Python

Синтаксис:

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']