我的环境使用Python 2.6,我是Python的新手。我需要编写一个运行文件解码命令的脚本,该命令从命令行获取多个参数。我的问题是我无法将从终端获取的参数解析为文件解码命令。
例如,如果我的程序名是x.py,当我运行" x.py Desktop / abc.txt"如何将Desktop / abc.txt作为参数传递给cat命令?
import commands
import sys
a=open("b.txt","w")
a.write(commands.getoutput('cat sys.argv[1]'))
当我研究时,似乎上述程序应该有效,但它没有。请帮忙。
答案 0 :(得分:1)
您正在混淆终端命令和Python命令。如果您有一个名为abc.py
的文件,其代码如下:
import sys
print sys.argv[1]
您使用python abc.py arg1
运行它,它应打印出arg1
。
如果您希望控制诸如确保它们是int
或允许多个或其他的东西,那么使用命令行参数的更简洁易懂的方法,我使用{已经取得了很大的成功Python中的{1}}模块 - 它比解析命令行参数的argparse
样式更容易使用。查看官方教程/文档:https://docs.python.org/2/howto/argparse.html
答案 1 :(得分:1)
您应该将commands.getoutput('cat sys.argv[1]')
更改为commands.getoutput('cat %s' % (sys.argv[1],))