快速写入状态文件

hoj*_*oju 1 python file-io

我的Python脚本需要每秒多次将状态写入文本文件,从而覆盖以前的内容.

fp = open('status.txt', 'w')
fp.write('12983214/23180100')
fp.close()
Run Code Online (Sandbox Code Playgroud)

您如何建议实施此项目以尽量减少在此花费的时间?命令行电话?单独的线程?

agf*_*agf 7

看起来你正在写出一个进度号码.这意味着你的字符串永远不会变短,只会更长.

因此,您不必在每次写入之前截断它 - 只需回到开头并写入前一个值.使用刷新进行跟进,以便数据可用于监视状态的任何内容.

这样做几次不应该花费任何大量的时间,这是最简单的解决方案.

fp = open('status.txt', 'w')

#whenever you want to write
fp.seek(0)
fp.write('12983214/23180100')
fp.flush()

#when you're done
fp.close()
Run Code Online (Sandbox Code Playgroud)

如果状态字符串可以变短,只需添加即可

fp.truncate(0)
Run Code Online (Sandbox Code Playgroud)

之前write.您仍然需要,seek因为截断不会更改当前文件位置.

所有这些方法都记录在内置文件对象中.