我正在写另一个程序(gnuplot)的文件作为输入。
g = open('test.gnuplot', 'w')
g.write("[snip]")
g.close()
os.system("sleep 1")
os.system("gnuplot test.gnuplot")
如果我省略sleep 1
gnuplot生成一个受损的文件 - 看似因为我刚写的文件尚未“准备好”(如果我错了请告诉我真正的原因是什么)。
我猜有一种更优雅的方式等待文件准备好阅读,它是什么?
答案 0 :(得分:1)
试试这个:
g = open('test.gnuplot', 'w')
g.write("[snip]")
g.flush()
os.fsync(g.fileno())
os.system("gnuplot test.gnuplot")
带走os.system("sleep 1")
。我认为缓冲区尚未写入文件。请参阅python fsync docs。