在 python 2.6 脚本中执行从终端获取参数的终端命令

Execute a terminal command that takes an argument from terminal in python a 2.6 script

我的环境使用 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]'))

当我研究时,上面的程序似乎应该可以工作,但没有。请帮忙

您混淆了终端命令和 Python 命令。如果您有一个名为 abc.py 的文件,其中包含以下代码:

import sys
print sys.argv[1]

而你 运行 它与 python abc.py arg1,它应该打印出 arg1

如果您想控制一些事情,例如确保它们是 int 或允许多个或其他任何东西,为了更清晰、更易于阅读地使用命令行参数,我已经取得了很多成功Python 中的 argparse 模块 - 它比解析命令行参数的 sys.argv 风格更容易使用。在此处查看官方教程/文档:https://docs.python.org/2/howto/argparse.html

您应该将 commands.getoutput('cat sys.argv[1]') 更改为 commands.getoutput('cat %s' % (sys.argv[1],))