我的 Python 脚本需要每秒多次将状态写入文本文件,覆盖之前的内容。
fp = open('status.txt', 'w')
fp.write('12983214/23180100')
fp.close()
您建议如何实现此操作以最大程度地减少在这里花费的时间?命令行调用?单独线程?
请您参考如下方法:
看起来您正在写出一个进度数字。这意味着您的字符串永远不会变短,只会变长。
正因为如此,您不必在每次写入之前截断它——只需返回到开头并覆盖之前的值。随后进行刷新,以便数据可用于监视状态的任何对象。
每秒执行几次此操作不会花费大量时间,而且这是最简单的解决方案。
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()
如果状态字符串可以更短,就加上
fp.truncate(0)
在写入之前。您仍然需要 seek,因为截断不会更改当前文件位置。
所有这些方法都记录在 built-in file objects 下.
