2015-03-18 4 views
-2

Я хочу использовать sys.argv для доступа к аргументам, переданным скрипту. Вот мой код:Аргументы командной строки в Python с sys.argv

if __name__ == '__main__': 
    data = {} 
    if len(sys.argv) >= 2 :read_inputs(data, sys.argv[1]) 
    else : print "ERROR : the config file is required in the command line" 

    if len(sys.argv) >= 3 :data['Parameters']['Mode'] = sys.argv[2] 
    print_data(data) 
  • Я понимаю, что sys.argv[1] и sys.argv[2] относятся к аргументам.
  • Мои аргументы содержатся в текстовом файле.

Что я не могу понять, так это то, как я могу сказать код, что ему нужно прочитать аргументы в этом точном текстовом файле. Я использовал python Interface.py config.txt, но это не сработало.

Любые идеи?

+2

Ожидаете ли вы, что Python волшебным образом предположит, что 'argv [1]' содержит файл, который должен пройти и (каким-то образом) читать, чтобы получить аргументы? Это не произойдет **. – jonrsharpe

+0

Вы должны открыть этот файл с помощью 'open()' и прочитать данные оттуда. В чем дело? Или вы можете использовать shell (если вы работаете с nix-подобной системой), чтобы помочь вам читать аргументы типа 'python Interface.py $ (cat config.txt)' – myaut

+0

Прочтите этот файл в коде. Обратитесь к этой ссылке для примеров: http://www.tutorialspoint.com/python/python_files_io.htm –

ответ

1

Если я правильно вас понимаю, вы хотите, чтобы в командной строке было то, что обычно было в командной строке, не так ли?

Вы можете сделать это с помощью команды подстановки python Interface.py $(< config.txt), как видно here

+0

Я использовал вашу команду, но в ней говорится, что есть синтаксическая ошибка. – AmyMagoria

+0

Эта ошибка должна обычно указывать вам, где синтаксическая ошибка ... это проблема в вашем коде на Python. – greschd

+0

Он говорит, что это в команде: 'python Interface.py $ ( AmyMagoria

1

Хотя не прямой ответ на ваш вопрос, я бы настоятельно рекомендую использовать argparse модуль Python для разбора аргументов командной строки. В вашем случае я бы добавил параметр «-c, --config», который указывает местоположение файла конфигурации, который вы хотите использовать. См. Документацию по примерам: https://docs.python.org/3/library/argparse.html

Смежные вопросы