首页 > 解决方案 > 无法使用 while 循环保存文本文件

问题描述

它保存一个文本文件但文件是空的请帮助我,我认为错误发生在while循环中?我已经尝试过 for 循环,但它导致无限循环

with open('F:\\datamining\\Textmining\\Coded\\newlist.txt') as fp:
    
    line  = fp.readline()
    cnt=1
    f=open('F:\\datamining\\Textmining\\Coded\\Lastlist.txt','w')
    while line:
        data=line.strip()
        if data in words :
            print(data)
            f.write(data+"\n")
        line=fp.readline()
        cnt += 1

标签: pythonjupyter-notebook

解决方案


我认为问题在于您应该在写入后关闭第二个文件。这可以f.close()在写入循环结束时完成,也可以使用另一个缩进的上下文管理器来完成,该管理器在退出时关闭文件。

解决方案f.close()

with open('F:\\datamining\\Textmining\\Coded\\newlist.txt') as fp:
    
    line  = fp.readline()
    cnt=1
    f=open('F:\\datamining\\Textmining\\Coded\\Lastlist.txt','w') as f:
    while line:
        data=line.strip()
        if data in words :
            print(data)
            f.write(data+"\n")
        line=fp.readline()
        cnt += 1
    f.close()

使用上下文管理器的解决方案:

with open('F:\\datamining\\Textmining\\Coded\\newlist.txt') as fp:
    
    line  = fp.readline()
    cnt=1
    with open('F:\\datamining\\Textmining\\Coded\\Lastlist.txt','w') as f:
        while line:
            data=line.strip()
            if data in words :
                print(data)
                f.write(data+"\n")
            line=fp.readline()
            cnt += 1


推荐阅读