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

Ale*_*ato 10 python file-io

我正在使用io模块的输出流并写入文件.我希望能够检测到何时将1G数据写入文件然后开始写入第二个文件.我似乎无法弄清楚如何确定我写入文件的数据量.

有内置的东西io吗?或者我可能需要在每次手动写入前计算字节数?

mou*_*uad 14

如果您使用此文件进行日志记录,我建议在日志记录模块中使用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)
Run Code Online (Sandbox Code Playgroud)

注意:如果你喜欢做黑客攻击,你也可以使用这种方法,即使你没有用它来记录:)


Mar*_*nen 9

请参阅文件对象的Python文档,特别是tell().

例:

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