1

私はpythonが初めてです。私は次のアプローチを検索して試しました:

n引数をとる「xyz」というサードパーティアプリケーションがあります。

この「xyz」を、m 個の引数を必要とする「abc.py」というモジュールにワープしたいと思います。

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 に答える