Python 命令行参数

标签 python command-line command-line-arguments

我刚开始使用 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/

相关文章:

java - 从命令行执行 Java Swing GUI 应用程序

dart - 执行 `pub build` 时如何从命令行设置 dart2js --minify 选项?

unix - 简单的Unix重定向问题: Pass lines in a file as command line arguments to a script

python - Pandas 数据框中的逻辑或/按位或

python - 基于列中字符串值的条件串联

python - 如何将空参数传递给python函数?

python - appengine : NeedIndexError: The built-in indices are not efficient enough for this query and your data. 请为此查询添加复合索引

command-line - 我如何 'run as' 'Network Service'?

linux - 在 Linux 中 grep 后复制

python - 4 位数字作为参数的命令行解析器,具有多种组合 (Python)