フォルダーを検索し、特定のファイルを取得し、ファイルとコマンドを Windows の CMD シェルに渡す Python (2.5) スクリプトを作成しています。これは、コマンドで行う必要がありますprogram.exe /rptcsv <file being created> <file being used>
。さらに、.exe は C:\Program Files (x86)\Reporter フォルダーから実行する必要があるため、作業ディレクトリが変更されます。
ここに私の問題があります: Python が 1 つの特定のファイル (fnmatch) を検索し、コマンド全体をシェルに渡す必要があります。これが正しく行われると、プロセスは GUI を起動せずにバックグラウンドで実行されます。
stdin に関する投稿を見てきました。stdout などであり、パイプで戻されるものは何も必要ありません。すべてを渡すために Python が必要なだけです。現在何が起こっているかというと、Python は GUI を起動しますが、コマンドを変数で完全に渡すことができません。これを行う方法はありますか?
私はまだ Python n00b ですので、明らかな誤りがあればご容赦ください。
MC01 = 'WKST01*.bat'
MC02 = 'WKST02*.bat'
files = os.listdir(FOLDER)
MC01_CMD = fnmatch.filter(files, MC01)
MC01_CSV = "MC01.csv"
exe = ("reporter.exe /rptcsv", MC01_CSV, MC01_CMD)
os.chdir("C:\Program Files (x86)\Reporter")
os.system("exe")
編集: コードの前半で、FOLDER で os.walk を使用しました。
print "Walking directory..."
for root, dirs, files in os.walk(FOLDER):
for file in files:
pathname = os.path.join(root, file)
作業ディレクトリを切り替えたため、C:\Program Files (x86)\Reporter で MC01_CMD ファイルを検索していますが、(もちろん)そこにはありません。新しい変数を作成せずにパス名と MC01_CMD を結合して、MC01_CMD の正しい場所を取得する方法はありますか?