Как получить доступ к аргументам командной строки в Python?

Я использую python для создания моей настройки параметров проекта, но мне нужна помощь в получении аргументов командной строки.

Я пробовал это на терминале:

$python myfile.py var1 var2 var3 

В моем файле Python я хочу использовать все переменные, которые вводятся.

Учебник Python объясняет это :

 import sys print(sys.argv) 

Более конкретно, если вы запустите python example.py one two three :

 >>> import sys >>> print(sys.argv) ['example.py', 'one', 'two', 'three'] 
 import sys sys.argv[1:] 

предоставит вам список аргументов (не включая имя файла python)

Вы можете использовать sys.argv чтобы получить аргументы в виде списка.

Если вам нужно получить доступ к отдельным элементам, вы можете использовать

 sys.argv[i] 

где i – индекс, 0 даст вам исполняемое имя файла python. Любой индекс после этого – переданные аргументы.

Код Python:

 import sys # main param_1= sys.argv[1] param_2= sys.argv[2] param_3= sys.argv[3] print 'Params=', param_1, param_2, param_3 

Призвание:

 $python myfile.py var1 var2 var3 

Вывод:

 Params= var1 var2 var3 

Я настоятельно рекомендую, чтобы argparse прибыл с Python 2.7 или новее. Вот небольшой пример:

 import argparse parser = argparse.ArgumentParser("simple_example") parser.add_argument("counter", help="An integer will be increased by 1 and printed.", type=int) args = parser.parse_args() print(args.counter + 1) 

и выход для python3 prog.py -h

 usage: simple_example [-h] counter positional arguments: counter counter will be increased by 1 and printed. optional arguments: -h, --help show this help message and exit 

и для python3 prog.py 1 как и следовало ожидать:

 2 

Если вы вызываете это так: $ python myfile.py var1 var2 var3

 import sys var1 = sys.argv[1] var2 = sys.argv[2] var3 = sys.argv[3] 

Подобно массивам, вы также имеете sys.argv[0] который всегда является текущим рабочим каталогом.

Некоторые дополнительные вещи, о которых я могу думать.

Поскольку @allsyed сказал, что sys.argv дает список компонентов (включая имя программы), поэтому, если вы хотите узнать количество элементов, переданных через командную строку, вы можете использовать len () для его определения. Исходя из этого, вы можете создавать сообщения об ошибках / ошибках, если пользователь не передал определенное количество параметров.

Также, если вы ищете лучший способ обработки аргументов командной строки, я бы предложил вам посмотреть https://docs.python.org/2/howto/argparse.html