1
我正在写入另一个程序(gnuplot)的文件以用作输入。验证文件是否已准备好在py3k中读取
g = open('test.gnuplot', 'w')
g.write("[snip]")
g.close()
os.system("sleep 1")
os.system("gnuplot test.gnuplot")
如果我省略了sleep 1
gnuplot的生成错位的文件 - 似乎是因为我刚写的文件不是“准备”,但(如果我错了,请告诉我真正的原因是什么)。
我猜测有一个更优雅的方式来等待文件准备好阅读,它是什么?
尝试关闭您的防病毒软件并查看是否可以删除睡眠 – 2012-02-13 00:18:37
假设您正在等待执行实际写入,如果在'g.close()之前调用'g.flush()',会发生什么情况? '?你可以把睡眠了吗?顺便说一句,你可以说'进口时间; Python中的time.sleep(')'。 – snim2 2012-02-13 00:20:43
试试这个:'g.write(“[snip]”); g.flush(); os.fsync(g.fileno())'拿掉'os.system(“sleep 1”)'。我可能是错的,但我认为缓冲区还没有写入文件。请参阅:http://docs.python.org/library/os.html#os.fsync – 2012-02-13 00:28:06