在Python中读取一个巨大的文本文件

时间:2013-05-18 09:25:50

标签: python dictionary brute-force

我在python中编写一个脚本,可以对压缩文件进行暴力攻击。我希望它使用某种缓冲区,其中每隔x次将x MB加载到RAM中。因此,如果我有一个15 GB的文件,而我的RAM是2 GB,那么它应该没有任何问题,并且不会使我的系统崩溃。 我的代码只使用readlines()函数来读取行。

1 个答案:

答案 0 :(得分:1)

如何在Py帮助文档中找到它:

  1. 打开Python IDE
  2. 点击“帮助 - >> Python文档”(或按F1
  3. 选择“索引”标签
  4. 输入“open()”和
  5. 在列表中选择最接近(可能已突出显示)的结果。
  6. Python 3.2.2帮助文档的含义:

    open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True)
    

    调整buffering变量以更改文件的缓冲方式。

    • 0:关闭缓冲(仅在二进制模式下可用。)
    • 1:行缓冲(仅在文本模式下可用。)
    • Grater than 1:表示固定大小的块缓冲区的大小。

    然而,当没有给出缓冲区参数时,“Binary files are buffered in fixed-size chunks; the size of the buffer is chosen using a heuristic trying to determine the underlying device’s “block size” and falling back on io.DEFAULT_BUFFER_SIZE. On many systems, the buffer will typically be 4096 or 8192 bytes long.”换句话说,你想要做的事情已经自动完成了。