我正在研究如何在 python 中将流字符串作为文件写入。
通常我使用一个表达式作为
myfile = open("test.txt", w)
for line in mydata:
... myfile.write(line + '\n')
myfile.close()
Python 在目录中创建一个文本文件,并每隔一段时间逐块保存值。
我有以下问题:
是否可以设置缓冲区?(例如:每 20 MB 保存一次数据)是否可以逐行保存?
感谢您的建议,他们总是帮助改进
我正在研究如何在 python 中将流字符串作为文件写入。
通常我使用一个表达式作为
myfile = open("test.txt", w)
for line in mydata:
... myfile.write(line + '\n')
myfile.close()
Python 在目录中创建一个文本文件,并每隔一段时间逐块保存值。
我有以下问题:
是否可以设置缓冲区?(例如:每 20 MB 保存一次数据)是否可以逐行保存?
感谢您的建议,他们总是帮助改进
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')
在上面的示例中,我将缓冲区设置为 20 MB。