python - 无法使用 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
解决方案
我认为问题在于您应该在写入后关闭第二个文件。这可以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
推荐阅读
- python - 向 PYSCIPOPT 添加约束?
- arrays - Java:将字符串返回到 HashMap
- apache - 将所有非 www 重定向到 www,将所有 http 重定向到 https,并排除子域
- gradle - Gradle Gretty 插件的替代品
- c++ - 使用自动推导出的 lambda 参数作为常量表达式
- python - Openpyxl保存损坏的文件,android
- python - SQLAlchemy 和 pg8000 KeyError / Broken Pipe on Google App Engine with Postgresql
- javascript - 导入/导出 Javascript,动态创建按钮事件 onclick(ES6)
- rust - 为什么这会变成堆栈溢出?
- angular - Quill 编辑器在 Angular 8 应用程序中未按预期显示