python同时读写多个文件暨大型json文件读取方法

缘由

最近处理NLP数据集时,需要一边读json文件,一边向自己创建的txt写入提取出的对话数据集,即同时读写多个文件,本来记得以前在哪看过这波操作的,但时间有点久了,忘了。

又由于新换了mac,win上原有的梯子挂了,这就很离谱,因此也没法谷歌,只能用百度凑合着查了一番,看看有没有大佬记录了这个小tip。但是很遗憾,网上找到的方法都很捞,简直是海底捞,没办法。好在脑子里还有点印象,修修改改总算写出来了,在此做个记录,同时也开源方便一下诸位道友。

你是不是觉得我很捞,很菜,连个文件读写都不会~
那么,对不起,诸位,现在,我要起飞了,你以为你是第二层,我是第一层,实际上,我在第五层,且看我写给你看~

import json
string = "/Users/yuqili/Downloads/Dialog_train/Persona_train.json"
此处文件读写使用with关键字的好处:
可以不用写close,系统会自动在读写完毕后关闭文件。
此外,如果文件较大,可能系统会采用缓存的形式读写,此时如果不进行close,很可能导致文件读写不全。
with open(string, "r", encoding="utf-8") as f, open("./dialog.txt", "w", encoding="utf8") as g:
    #此处使用readlines原因为json文件太大,json库无法一次性解析,因此需要分行进行解析
    content = f.readlines()
    for line in content:
        dic = json.loads(line)
        conversation_lst = dic["conversation"]