2014-10-29 4 views
-4

Как передать аргументы скрипту python при его запуске из Bash?Как передать аргументы через bash на Python при запуске скрипта

python somepythonfile.py arg1 arg2 
+3

Что не работает о команде, которую вы указали? –

+0

Арги считаются частью того, что я передаю на python. Мне нужны доступные аргументы из скрипта. –

ответ

1

Как уже отмечалось, вы можете получить сырой доступ к арг через sys.argv

Для более сложной обработки аргументов, если сделать сценарий командной строки, вы можете проверить argparse модуль:

https://docs.python.org/2/library/argparse.html#module-argparse

(из документации ...)

Для примера рассмотрим файл с именем myprogram.py со следующим кодом:

import argparse 
parser = argparse.ArgumentParser() 
parser.add_argument('--foo', help='foo help') 
args = parser.parse_args() 

Из командной строки:

$ python myprogram.py --help 
usage: myprogram.py [-h] [--foo FOO] 

optional arguments: 
-h, --help show this help message and exit 
--foo FOO foo help 
1

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

#!/usr/bin/python 

import sys 

print 'Number of arguments:', len(sys.argv), 'arguments.' 
print 'Argument List:', str(sys.argv) 

Выходы:

Number of arguments: 3 arguments 
Argument List: ['somepythonfile.py', 'arg1', 'arg2'] 
  • Аргумент 0 (sys.argv[0]) это имя сценария
  • Аргумент 1 через АргументЪ N (sys.argv[1] ... sys.argv[N]) являются принятые доводы

Бесстыдно взято с this example.

1

Используйте sys.argv, который представляет собой список, содержащий аргументы, переданные вашему скрипту, а также имя файла.

# test_prog.py 
from sys import argv 

print argv[0] # test_prog.py 
if len(argv) > 1: # check that we have at least 1 argument 
    print argv[1] 
Смежные вопросы