Python не будет читать sys.argv - PullRequest
6 голосов
/ 01 ноября 2011
    import sys

    print sys.argv[1]

привет,

это может показаться очень простым, но я не могу заставить Python читать что-либо из командной строки.Вот код выше и я набираю:

    myfile.py helloworld

и я получаю следующее:

    IndexError: list index out of range

Казалось, это сработало один раз для меня, но больше не будет работать,и я попытался удалить и переустановить Python, и он все еще не работает.

Итак, мой вопрос, я делаю что-то не так?или я только что сломал Python?

Спасибо за любую помощь

Использование: Windows 7 Python 2.7.2

Ответы [ 2 ]

16 голосов
/ 16 июля 2014

Запустите редактор реестра (regedit).Задайте для ключа HKEY_CLASSES_ROOT \ Applications \ python26.exe \ shell \ open \ command значение: "C:\Python26\python26.exe" "%1" %*

Источник этого решения: http://eli.thegreenplace.net/2010/12/14/problem-passing-arguments-to-python-scripts-on-windows/

5 голосов
/ 01 ноября 2011

Вы уверены, что называете свой скрипт на Python таким, каким вы думаете?

#!/usr/bin/python
import sys

if len(sys.argv) < 2:
    print "you did not give any arguments\n"
else:
    print sys.argv[1]

возвращает:

$ ./foo.py 
you did not give any arguments

$ ./foo.py hello_world
hello_world
$ 
...