Gia*_*ear 7 python optimization performance coding-style
通常我使用表达式
myfile = open("test.txt", w)
for line in mydata:
... myfile.write(line + '\n')
myfile.close()
Run Code Online (Sandbox Code Playgroud)
Python在目录中创建一个文本文件,并按时间间隔保存chunk-by-chunk的值.
我有以下问题:
是否可以设置缓冲区?(例如:每20 MB保存一次数据)是否可以逐行保存?
感谢您的建议,他们总是帮助改进
Mar*_*ers 14
python中的文件I/O已经缓冲.该open()函数允许您确定缓冲写入的范围:
可选
buffering参数指定文件所需的缓冲区大小:0表示无缓冲,1表示行缓冲,任何其他正值表示使用(大约)该大小的缓冲区.否定buffering意味着使用系统默认值,通常为tty设备进行行缓冲,并为其他文件进行完全缓冲.如果省略,则使用系统默认值.
就个人而言,我会通过with声明将该文件用作上下文管理器.一旦with套件下的所有语句(至少一个缩进级别更深)完成或引发异常,文件对象就会被关闭:
with open("test.txt", 'w', buffering=20*(1024**2)) as myfile:
for line in mydata:
myfile.write(line + '\n')
Run Code Online (Sandbox Code Playgroud)
我在上面的例子中将缓冲区设置为20 MB.