如何将文件限制为不大于 1MB

  • 本文关键字:不大于 1MB 文件 python
  • 更新时间 :
  • 英文 :


我有脚本正在寻找差异,而不是将这种差异保存到文件中。它看起来像这样:

for line in difflib.unified_diff(new_content, old_content):
raport.write(line)

对于少量数据,它工作正常。 但是当我有大量数据时,文件似乎被创建为空。可能是因为它向文件写入了太多数据?因此,我想尝试的是创建一些将文件大小限制为1MB的东西。因此,如果数据超过此限制,它将创建另一个文件,例如file.txt.2 file.txt.3

你知道怎么解决这个问题吗?

您可以尝试缓冲写入。Python 已经使用了系统的默认值(应该是正确的(,但如果你想进行分块写入,你可以通过传递参数值来将数据缓冲到文件中buffering

# 10MB buffer
with open("raport.diff", 'w', buffering=10*(1024**2)) as raport:
for line in difflib.unified_diff(new_content, old_content):
raport.write(line)

但是您应该尝试找到真正的问题。尝试检查数据的大小。您可以使用

# Get size of line in MB
print(sys.getsizeof(line)/1024**2)

最新更新