我有一个文本文件,我读入,然后我提取我需要的数据,并尝试将其发送到不同的新文本文件,但只有第一行进入新的文本文件。在
import csv
f = open('C:\\Users\\c\\Documents\\DCX.txt')
next(f)
csv_f=csv.reader(f, delimiter='\t')
for row in csv_f:
if 'DCX3520E' in row[0] and 'NULL' not in row[6]:
with open("out.txt","w") as f1:
dcx = row[0] + " " + row[6]
aa = dcx[9:]
print(aa)
f1.writelines(aa)
我能看到的最大的问题是你在for循环中以写模式打开文件。每次以写入模式打开文件时,都会清空该文件并删除其中当前的所有内容。在
两个明确的解决方案如下:
with
行成为最外部的上下文既然你是第一次来处理这个问题,我就故意避免发布完整的解决方案。我认为重要的是你要了解这里发生了什么,并试着自己去解决它。在
调用
open("out.txt","w")
以覆盖模式打开文件。在这里,您可能希望使用open("out.txt","a")
来追加,但前提是每次都有充分的理由重新打开文件。除此之外,最好的做法是打开文件,多次写入,然后关闭不要在for循环中打开文件。每次都会覆盖文件。在
相关问题 更多 >
编程相关推荐