我是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))