8

実行可能ファイルを呼び出す Python スクリプトがあります。実行可能ファイルの出力は、呼び出された時間に関する情報とともにログ ファイルにリダイレクトされます。たとえばpython -V、実行可能ファイルとして使用すると、次のようになります。

import time, subprocess
with open('./LOGFILE.txt', 'a') as F:
    F.write('******\n')
    F.write('Events on %s :\n'%time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
    EXE_output = subprocess.call(['python', '-V'], stdout=F, stderr=F)

ファイルの出力LOGFILE.txtは次のとおりです。

Python 2.7.3
******
Events on 2013-04-10 19:27:25 :

次のように期待していた場所:

******
Events on 2013-04-10 19:27:25 :
Python 2.7.3

******サブプロセスを実行し、その出力とエラーをファイルにリダイレクトする前に、開いたログ ファイルに時間情報を書き込みました。なぜそのように注文するのですか?どうすれば再注文できますか?

4

1 に答える 1

9

サブプロセスを実行する前に F.flush() を呼び出す必要があります。これは、サブプロセスが終了時にバッファをフラッシュするのに対し、あなたはフラッシュしないためです。

于 2013-04-10T16:48:47.310 に答える