1

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

我有名为“xyz”的第 3 方应用程序,它需要 n 个参数。

我想将这个“xyz”扭曲到我的名为“abc.py”的模块中,它需要 m 个参数。

我想阅读并保留我的 m 参数并将剩余的 n 参数传递给“xyz”

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

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

谢谢您的帮助。

4

2 回答 2

2

假设您的外部程序“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
于 2013-05-29T18:05:23.293 回答
0

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

如果你想在 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))
于 2013-05-29T17:44:07.667 回答