2015-04-11 5 views
1

Я пытаюсь запустить скрипт python, передающий аргументы в командной строке. То, как я делаю это следующее:Передача аргументов в бинарный исполняемый файл python

from sys import argv 
x, y = argv 

Когда я пытаюсь запустить скрипт:

./tst.py 23 1421 (the integers being the arguments) 

я получаю столкнуться следующее сообщение об ошибке:

ValueError: too many values to unpack 

Я в конечном счете, преобразовывая это скрипт как двоичный файл с помощью pyinstaller, и исполняемый файл будет вызываться из любого внешнего приложения (например, Java-кода).

Любая помощь будет высоко оценена по этой конкретной проблеме и любому лучшему методу передачи аргумента в двоичный файл в конечном итоге.

ответ

3

sys.argv содержит имя сценария, поэтому у вас есть три значения в списке, а не два.

Учитывайте это при распаковке; либо игнорируют первый элемент:

x, v = sys.argv[1:] 

или включать в себя другую цель:

script, x, v = sys.argv 

Из sys.argv documentation:

The list of command line arguments passed to a Python script. argv[0] is the script name (it is operating system dependent whether this is a full pathname or not).

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