无花果学python 发表于 2021-6-24 09:58:19

初学者有关文件读取写入,最后两 行数据丢失问题

本帖最后由 无花果学python 于 2021-6-24 10:00 编辑

在学习文件读取写入时,试着从note.txt中将小王与小顾的对话读出,并将他们的对话分别存放到两个文本文件中,刚开始能全部 读出,增加了几句话,并修改相应代码进行不同的尝试后,再改回来后,通过print监测,最后两行能读出来,但写不到相应的文件里,不知怎么回事,请教各位,谢谢!xw=[]
xg=[]
f=open("note.txt")
for each_line in f:
    (role,line_spoken)=each_line.split(':',1)
    if role=='小王':
      xw.append(line_spoken)
      xwfiles=open("xw.txt",'a')
      xwfiles.writelines(xw)
      print ("xw",xw)
    else:
      xg.append(line_spoken)
      xgfiles=open('xg.txt','a')
      xgfiles.writelines(xg)
      print ("xg",xg)
    xg=[]
    xw=[]
xwfiles.close
xgfiles.close
f.close

note.txt:
小王:小王第一句话
小顾:小顾第一句话
小王:小王第二句话
小王:小王第三句话
小顾:小顾第二句话
小王:小王第四句话
小顾:小顾第三句话
小王:小王第五句话

xw.txt:
小王第一句话
小王第二句话
小王第三句话
小王第四句话

xg.txt:
小顾第一句话
小顾第二句话

jackz007 发表于 2021-6-24 10:39:52

xwfiles.close
xgfiles.close
f.close
      改为
xwfiles.close()
xgfiles.close()
f.close()
   试试看

nahongyan1997 发表于 2021-6-24 10:55:05

我帮你把代码改好了,你自己比对一下:
xg=[] # 这里修改了
xw=[]
f=open("note.txt")
for each_line in f:
    (role,line_spoken)=each_line.split(':',1)
    if role=='小王':
      xw.append(line_spoken)
      # 这里修改了
      print ("xw",xw)
    else:
      xg.append(line_spoken)
      # 这里修改了
      print ("xg",xg)

# 这里修改了
xgfiles=open('xg.txt','a')
xwfiles=open("xw.txt",'a')
xwfiles.writelines(xw)      
xgfiles.writelines(xg)
# 这里修改了
xwfiles.close()
xgfiles.close()
f.close()
页: [1]
查看完整版本: 初学者有关文件读取写入,最后两 行数据丢失问题