Я использую python для создания настроек моего проекта, но мне нужна помощь в получении аргументов командной строки.
Я попробовал это на терминале:
$python myfile.py var1 var2 var3
В моем файле Python я хочу использовать все входные переменные.
python
command-line
ParisNakitaKejser
источник
источник
Ответы:
Учебник по Python объясняет это :
Более конкретно, если вы запустите
python example.py one two three
:источник
выдаст вам список аргументов (не включая имя файла python)
источник
[1:]
значит?[1:]
вверх, потому что первый аргументsys.argv
по умолчанию является именем файла python, который вы запускаете, напримерtestrun.py
.Я очень рекомендую,
argparse
который идет с Python 2.7 и позже.argparse
Модуль уменьшает котел пластину код и делает код более надежным, так как модуль обрабатывает все стандартные варианты использования ( в том числе подкоманд), генерирует помощь и использование для вас, проверки и дезинфицировать ввода пользователя - все вещи вы должны беспокоиться о том, когда вам Используемsys.argv
подход. И это бесплатно (встроенный).Вот небольшой пример:
и выход для
python prog.py -h
и
python prog.py 1
как вы ожидаете:источник
parser.add_argument('var3', nargs='?', type=int, default=3)
var3 - необязательный параметр, если вы не укажете значение в командной строке, вы можете получить доступ к var3 в своем коде, значение по умолчанию для var3 = 3Код Python:
Призвание:
Вывод:
источник
Вы можете использовать,
sys.argv
чтобы получить аргументы в виде списка.Если вам нужен доступ к отдельным элементам, вы можете использовать
где
i
индекс,0
даст вам имя исполняемого файла python. Любой индекс после этого является переданными аргументами.источник
Если вы называете это так:
$ python myfile.py var1 var2 var3
Подобно массивам у вас также есть,
sys.argv[0]
который всегда является текущим рабочим каталогом.источник
sys.argv[0]
не текущий рабочий каталог. Это имя файла, который выполняется.Некоторые дополнительные вещи, которые я могу придумать.
Как сказал @allsyed, sys.argv предоставляет список компонентов (включая имя программы), поэтому, если вы хотите узнать количество элементов, передаваемых через командную строку, вы можете использовать len () для его определения. Исходя из этого, вы можете создавать сообщения об исключениях / ошибках, если пользователь не передал определенное количество параметров.
Также, если вы ищете лучший способ обработки аргументов командной строки, я бы посоветовал вам взглянуть на https://docs.python.org/2/howto/argparse.html.
источник