我是 python 新手。我搜索并尝试了以下方法:
我有名为“xyz”的第 3 方应用程序,它需要 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
sys.argv
Python 将在数组中接收命令行参数。这只是在命令行上传递的一组值。
如果你想在 python 中使用一些参数,只需将它们从 sys.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))