私はPythonでこの奇妙な振る舞いに気づいています-私はプロセスからの出力を記録しようとしています、そして次にこの出力を読んでそれに対していくつかの処理をします。プログラムの実行後にファイルを開くと、ファイルにすべてのテキストが含まれていますが、何も読み取れません。
そのシンプルな
f=open("blah.txt",'w')
#I log the output of a program with subprocess
Cmdline="program.exe"
Dump= subprocess.Popen(CmdLine,stdout=f,stderr=subprocess.STDOUT)
#Waiting for it to finish
while(Dump.poll() is not None): #returns None while subprocess is running
print "waiting on process to finish \n"
f.flush() #I flush everything to make sure it was written
sys.stdout.flush()
f.close()
#now i need to read from this file
f= open("blah.txt", 'r')
line=f.readline()
while line:
print line
line=f.readline()
f.close()
私はまったく何も読んでいませんが、プログラムの実行後にblah.txtファイルを開くと、すべてがそこにあります。私が間違っているかもしれないことについてのヒントはありますか?「プロセスが終了するのを待っています」からはまったく印刷されませんが、プロセスの実行には約1秒かかります。