用新行将字典保存在文本文件中

时间:2019-04-23 14:39:04

标签: python dictionary

我正在处理某些时候无法容纳我的大文本文件。我的想法是逐行读取它们(因为您不必将整个文件加载到内存中),这样我就不会遇到内存问题。

with open(file) as infile:
    for line in infile:
        # do stuff with this line

问题之所以出现,是因为我创建这些文件的方式是在其中加载字典:

def save_dictionary_to_txt_file(dic, file_name):
    import json
    with open(file_name, 'w') as fp:
        fp.write(json.dumps(dic))

因此,假设我拥有的字典就是这本字典:

{'apple': ['5', '65'], 'blue': ['9', '10', '15', '43'], 'candle': ['15'], 'is': ['5', '6', '13', '45', '96']}

然后在文本文件中以与行完全相同的格式显示它。 有什么方法可以在文本文件中插入新行而无需再次解析文件?还是最重要的是将其加载到内存中? 我尝试了pickle,因为它是对象序列化模块,但没有成功。 我尝试的是每两把键就让字典中有'\ n'个换行符。

{'apple': ['5', '65'], 'blue': ['9', '10', '15', '43'], '\n', 'candle': ['15'], 'is': ['5', '6', '13', '45', '96']}

我已经尝试过使用json文件,并且它可以正常工作(保持字典的格式),但是json文件还有其他问题,使我无法在算法中使用它们。 (例如,您不能将另一个字典附加到json文件,或者可以将整个文件加载到我无法执行的内存中)。

0 个答案:

没有答案