5

実験で実行するステップを定義する python スクリプトとdefinition.py、実験を実行する別の python スクリプトがありexecute.pyます。コードよりもデータとして考えたい最初のファイル。実験が実行されると、そのフォルダーが作成されdefinition.py、フォルダーに移動され、実験から生成されたデータもそこに保存されます。

execute.py私はのように呼び出すつもりです

execute.py -f save_stuff_here -d this_is_the_definition.py

しかし、これを達成するための最良の方法が何であるかはわかりません。stackoverflow に関する他の質問では、定義をインポートすることが提案されていますが、それがうまくいくとは思いません。定義が のどこかにあるという保証も、定義がPYTHONPATH同じ名前であるという保証もありません。ユーザーがその情報を提供する必要があるため、そうである必要はありません。

definition.py単一のオブジェクト (アクションのリスト) を定義する必要がありexecute.py、オブジェクトを参照できる必要があります。

私が望む理想的な動作は、 からまでscript1.py path/to/script2.pyの値を返すことです。ここで、は任意のファイルです。script2.pyscript1.pypath/to/script2.py

それはできますか?

4

3 に答える 3

2

execfile明示的な辞書を持つファイルglobalsglobalsdictを読み取ることで、ファイルで定義されているものを取得できます。Python 3 との互換性が必要な場合はopen、ファイル、readコンテンツ、およびexecそれらを使用できます。

于 2013-07-11T03:44:07.800 に答える
1

script2.py の実行が終了したら、path/to/script2.py から script1.py にデータを送信する必要がありますか? 試しましたか..?

script2.py

import os
data = "whatever"
os.system("python ..//..//script1.py %s" % data)

script1.py

import sys
data = sys.argv[1]
print "my data is: " + data
raw_input('enter to finish')
于 2013-07-11T07:02:07.197 に答える
0

Python プログラムのコマンドライン引数を取得し、それらを使用ossysて別の Python プログラムを実行できます。

import sys
import os
filename = sys.argv[1]
os.system(filename)

これは、最初の CLI をファイル名の入力として受け取り、それを呼び出します。次に例を示します。

script1.py script2.py

script1がscript2を呼び出すようにします

于 2013-07-11T04:14:34.817 に答える