缘由
最近处理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"]
for sen in conversation_lst:
g.write(sen + "\n")
最后,如果有道友对俺的开放域对话数据集感兴趣,这个其实也是开源的
数据集链接