2011-07-27 2 views
1

を持っていることを引数として別のスクリプトを呼び出すスクリプトを実行する引数を指定して(我々はそれがSCRIPT1呼びます)は:は、今度は私がスクリプトを実行する最も効率的/簡単な方法を探していた引数

  1. に基づいてSCRIPT1が実行されたときに与えられており、いずれかのスクリプトに渡され、その上に引数が実行されていますターンでは
  2. コール1(一つだけ)(SCRIPT1への引数として)、いくつかの他のスクリプトの、スクリプト1の引数...

例えば、私はscript1を実行したいと思います。引数aとbは持っているスクリプト2を呼び出すための引数:

script1.py(スクリプト2 AB)

私は関数に見てきたとラムダを示唆し、いくつかの人々を読んだことがあるが、私はかなり初心者だと学びたいと

はいくつかのアプローチがあるかと思って、私はので、私はそれをプログラムし、それを理解することができますしたいものを達成する方法の一般的な例を探しています...私は理解していない答えが提供されていない、理解して... 。

ありがとうございます!

import subprocess, sys 

subprocess.call(sys.argv[1:]) 

sys.argvは次のとおりです。

+0

これはpythonベースではありませんが、xargsを使用します。 –

+1

Pythonチュートリアルを読むと、関数の使い方とスクリプトのインポート方法が説明されています。 –

+1

あなたの質問を表現した方法から、あなたが何を問題にしているのかを知るのは難しいです。これまでに持っていたことを投稿して、あなたが立ち往生している部分について聞くことができますか? – SingleNegationElimination

答えて

2

あなたのスクリプトたい場合はscript1.pyとして書くことができ、与えられた引数で別のスクリプト(他のPythonプログラム)を呼び出すために(1つのPythonプログラムを、のはそれscript1.pyを呼びましょう)あなたのプログラムの名前を含むリスト(print sys.argv[0]を使用し、それをあなた自身で参照してください)、その後、あなたのプログラムに渡されたすべての引数。

sys.argv[1:]は、リストの最後までの2番目の要素(インデックス1を持つ)から始まり、リストの内容を意味します。

subprocess.callは、別のプログラムを呼び出し、それが実行するプログラムおよびそのすべての引数を含むリストを受け付けます。

+0

これを達成するためにimportステートメントや__ import __関数を使用する方が一般的には良いのですが、要件に応じてこれらを別々のスクリプトとして保存することが望ましいと認めます。 (たとえば、それらのうちの1つがPythonで実装されていない可能性があります) – wberry

+0

Daniloありがとうございました - 私はここでやりたいことを達成する簡単な方法のように見えるので、これを出発点として使用します - いつものように、 Pythonで何かをする方法は複数あります(これは良いことです)! –

関連する問題