を介して別のPythonスクリプトを繰り返し呼び出すラッパーPythonスクリプトがありますos.system
。これは十分に機能しますが、サブシェルを呼び出してモジュールを何度もインポートすると、パフォーマンスが大幅に低下します。これをよりエレガントでパフォーマンスの高いものに変換するにはどうすればよいですか?
counter = 0
for thing in list_of_stuff:
os.system("python inner_script.py %s result_%s" % (thing, counter)
counter += 1
私はこれをすべてラッパーで実行したいと思いますが、それが唯一または最良の方法である場合は、inner-script.pyを変更できます。
関連する場合、環境はWindows上のPython2.7です。
編集:コマンドラインパラメータを理解していないため、inner_scriptをインポートするだけではありません。
import inner_script
counter = 0
for thing in ['TR2','TR5']:
inner_script('%s result_%s' % (thing, counter))
counter += 1
結果:
C:\> python xx-wrapper.py
inner_script [input features] [output workspace]
これは、inner_script.pyによって返される使用法メッセージです。
if len(sys.argv) < 3:
print usage
exit()
in_features = sys.argv[1]
out_folder = sys.argv[2]
main(in_features, out_folder)