如何限制文件大小?
我正在使用io模块的输出流来写文件。我想知道怎么才能检测到我已经写了1G的数据到一个文件里,然后再开始写第二个文件。我现在还不知道怎么才能确定我写了多少数据到这个文件里。
在io
模块里有没有什么简单的方法可以做到这一点?还是说我得在每次写之前手动计算字节数呢?
6 个回答
3
看看流对象上的 tell() 方法。
16
如果你是用这个文件来记录日志,我建议你使用日志模块里的 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)
注意:即使你不打算用它来记录日志,如果你喜欢搞一些小把戏,也可以用这个方法哦 :)