我刚开始使用 python,所以我正在努力解决一个非常简单的例子。基本上我想通过命令行参数传递可执行文件的名称及其输入,例如:
python myprogram refprogram.exe refinput.txt
这意味着在执行 myprogram
时,它会执行 refprogram.exe
并将其作为参数 refinput
传递给它。我尝试通过以下方式做到这一点:
import sys, string, os
print sys.argv
res = os.system(sys.argv(1)) sys.argv(2)
print res
我得到的错误信息是:
res = os.system(sys.argv(1)) sys.argv(2)
^
SyntaxError: invalid syntax
有人知道我做错了什么吗?
我正在运行 Python 2.7
最佳答案
这一行
res = os.system(sys.argv(1)) sys.argv(2)
在几个方面是错误的。
首先,sys.argv 是一个列表,所以你可以使用方括号来访问它的内容:
sys.argv[1]
sys.argv[2]
其次,您过早地关闭了 os.system
上的括号,而 sys.argv(2)
就卡在它的末尾了。在所有参数之后,您想将右括号移到行尾。
第三,你需要用逗号分隔参数,一个简单的空格是不行的。
最后一行应该是这样的:
res = os.system(sys.argv[1], sys.argv[2])
关于Python 命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9036013/