写文件时如何限制文件大小?

2024-05-08 15:49:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用io模块的输出流并写入文件。我希望能够检测到何时将1G数据写入一个文件,然后开始写入第二个文件。我似乎不知道如何确定已写入文件的数据量。

有什么简单的内置功能吗?或者我可以在每次写之前手动计算字节数吗?


Tags: 模块文件数据io功能手动内置字节数
3条回答

如果您将此文件用于日志记录目的,我建议使用日志记录模块中的RotatingFileHandler,如下所示:

import logging
import logging.handlers

file_name = 'test.log'

test_logger = logging.getLogger('Test')
handler = logging.handlers.RotatingFileHandler(file_name, maxBytes=10**9)
test_logger.addHandler(handler)

注意:你也可以使用这个方法,即使你不使用它来记录,如果你喜欢做黑客:)

请参见stream对象上的tell()方法。

请参阅Python文档中的File Objects,特别是tell()。

示例:

>>> f=open('test.txt','w')
>>> f.write(10*'a')
>>> f.tell()
10L
>>> f.write(100*'a')
>>> f.tell()
110L

相关问题 更多 >