Python:将命令行参数共享给os.系统调用



我是python新手。我搜索并尝试了以下方法:

我有一个名为"xyz"的第三方应用程序,它需要n个参数。

我想扭曲这个"xyz"到我的模块名为"abc.py",需要m个参数。

我想读取并保留m个参数,并将剩下的n个参数传递给"xyz"

注意:n个参数的数量是巨大的,所以最好不要在我的模块中重新声明相同数量的参数,直接传递给"xyz"

希望这应该是可能的,我没有混淆。

谢谢你的帮助

假设您的外部程序"xyz"是echo

import subprocess
import sys
m = 3 # number of args for abc.py; remainder goes to external program 'echo'
args = sys.argv
abc_args = args[1:m+1]
echo_args = args[m+1:]
cmd = ['echo']
cmd.extend(echo_args)
subprocess.call(cmd)

结果是

$ python abc.py 1 2 3 4 5 6
4 5 6

Python将接收sys.argv数组中的命令行参数。这只是一个在命令行上传递的值数组。

如果你想在python中使用一些参数,只需从sys. path中删除它们。Argv,然后将其余部分传递给os.system.

import sys
args = []
for arg in sys.argv:
  if isPythonArg(arg):
    savePythonArg(arg)
  else:
    args.append(arg)
os.system("xyz" + " ".join(args))

最新更新