Python不会读取sys.argv
嗨 这看起来很基本,但我无法让Python从命令行读取任何内容。 这是上面的代码,我键入的是:Python不会读取sys.argv,python,command-line-arguments,sys,Python,Command Line Arguments,Sys,嗨 这看起来很基本,但我无法让Python从命令行读取任何内容。 这是上面的代码,我键入的是: import sys print sys.argv[1] 我得到的回报是: myfile.py helloworld 它似乎对我有用过一次,但不再有用了,我尝试过卸载和重新安装Python,但仍然不起作用 所以我的问题是,我做错什么了吗?还是我刚刚弄坏了蟒蛇 谢谢你的帮助 使用: 视窗7 Python2.7.2您确定您正在以自己认为的方式调用Python脚本吗 I
import sys
print sys.argv[1]
我得到的回报是:
myfile.py helloworld
它似乎对我有用过一次,但不再有用了,我尝试过卸载和重新安装Python,但仍然不起作用
所以我的问题是,我做错什么了吗?还是我刚刚弄坏了蟒蛇
谢谢你的帮助
使用:
视窗7
Python2.7.2您确定您正在以自己认为的方式调用Python脚本吗
IndexError: list index out of range
启动注册表编辑器(regedit)。将HKEY\U CLASSES\U ROOT\Applications\python26.exe\shell\open\command键设置为:
“C:\Python26\Python26.exe”“%1”%*
此解决方案的来源:当您只打印sys.argv时会发生什么?当通过
python.exe myfile.py helloworld
调用文件时,它能工作吗?啊,谢谢你的回复,我设法让它工作了。有一个非常愚蠢的错误,没有将python添加到系统变量中的路径中。对于那些在Windows中向脚本传递参数时遇到困难的人,如果没有调用python(例如,python foo.py a
works,但是foo.py a
不,)滚动到第一个答案之前。哇,这个注册表遗漏今天让我们有些困惑,我们试图同时平衡Python2.7Anaconda和3.4安装。3.4安装程序省略了%*
参数,但我们需要为HKEY\U CLASSES\U ROOT\Applications\pythonxx.exe\shell\open\command
键以及HKEY\U CLASSES\U ROOT\py\u auto\U file\shell\open\command
键设置该参数。谢谢您的回答
#!/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
$