在不加载文件的情况下将文本添加到行尾

chu*_*use 5 python

我需要以很多字典的形式将信息存储到一个非常大的文件中.这并不是那么重要,只是说我试图先将所有数据都输入这些词典中,然后耗尽内存(约60Gb).

很好,所以我想在文件中添加数据,而不是实际将其加载到内存中,通过在行上执行循环并将每行添加一些文本.那可能吗?如果是这样,怎么样?

Kar*_*bat 5

您是否自己尝试过任何代码,您的发现是什么?您可以采用以下方法:

with open('/tmp/bigfile.new', 'w') as output:
    with open('/tmp/bigfile', 'r') as input:
        while True:
            line = input.readline().strip()
            if not line:
                break
            line += ' Look ma, no hands!'
            print(line, file=output)
Run Code Online (Sandbox Code Playgroud)

当然,除了"看起来没有手",你会有额外的字典;-)

  • 但是您最终会读取和写入 60GB 的数据,即使是一次更新也是如此。这肯定是自找麻烦吧? (2认同)