Аргументы командной строки с Python и sys.argv
Часто, при запуске программ Python через командную строку, возникает необходимость передачи дополнительных аргументов. Например, если программа обрабатывает данные, считанные из файла, вы можете передать имя файла своей программе, а не жестко кодировать значение в исходном коде. Для этого, можно использовать функцию input(), что не всегда удобно. Гораздо удобнее, было бы передать параметры непосредственно при запуске, после имени сценария.
Python предоставляет механизм для захвата и извлечения аргументов командной строки. Эти значения, затем, можно использовать для изменения поведения программы.
Их можно использовать посредством модуля sys, используя в коде программы sys.argv. И перейдем к примеру:
# создадим файл test.py
# импортируем модуль
import sys
# отобразим список аргументов командной строки
print('Список аргументов:', str(sys.argv))
# и количество аргументов
print('Число аргументов', len(sys.argv))
Теперь, запустим файл test.py вместе с аргументами:
>>>python test.py 1 2 3 4 5
# вывод
Список аргументов: ['test.py', '1', '2', '3', '4', '5']
Число аргументов 6
Как можно заметить, первый элемент в списке это название самого скрипта. И чтобы получить лишь список аргументов, без названия скрипта, используем следующий вариант кода:
import sys
l = sys.argv[1:]
print(l)
Получив представление о sys.argv, можно манипулировать данными переданными в командной строке. Попробуем перевернуть буквы в слове:
# reverse.py
import sys
arg = sys.argv[1]
print(arg[::-1])
# запуск
>>>python reverse.py myrusakov
Таким образом, добавление возможности обработки аргументов командной строки Python способно обеспечить удобный интерфейс для нашей программы. Это похоже на то, что представляет собой графический пользовательский интерфейс для визуального приложения.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.