OK、この投稿で Python 内で複雑なコマンドを実行する方法を見つけました。 Python スクリプトで独自の外部コマンドを実行する方法
import shlex
import subprocess
proc = subprocess.Popen(shlex.split('gr_cp -option=90 inputfilename outputfilename'))
proc.communicate()
それは実際に機能しますが、私の場合、ループと名前のinputfilename
変更outputfilename
を繰り返し実行しています。私はその解決策を試しましたが、認識しないため機能しませんinputfilename
。
In the loop は、が1 から 21 までのループで実行されているinputfilename
場所mbr{:03}_20161110.grb1.format(i)
です。i
ありがとうございました。
編集:要求に応じて、ここでループがどのようになるかを示します。
for i in range(1, 21):
dn = './mbr{:03}'.format(i)
inputfilename = 'mbr{:03}_2016111000.grb1'.format(i)
os.chdir(dn)
#do some things copying and concatenating files
proc = subprocess.Popen(shlex.split('gr_cp -option=90 inputfilename outfilename'))
proc.communicate()
os.chdir('..')
ループはディレクトリmbr001
を探索し、各親ディレクトリとしてmbr020
名前を付けます。inputfile
gr_cp は、(フィルターのように)inputfilename
からいくつかの変数を抽出するコマンド ライン ツールです。outputfilename
他のシェルコマンドと同じです。問題は、ループ内で識別されないことinputfilename
です。