Python os.listdir未读取所有文件
我试图从文件夹中的每个文件中抽出一行。我编写的代码是打开每个文件并打开新的输出文件,尽管在某些情况下它在每个文件中循环并输出两次数据。我在所有文件之间大约800000行内有15个文件Python os.listdir未读取所有文件,python,operating-system,listdir,Python,Operating System,Listdir,我试图从文件夹中的每个文件中抽出一行。我编写的代码是打开每个文件并打开新的输出文件,尽管在某些情况下它在每个文件中循环并输出两次数据。我在所有文件之间大约800000行内有15个文件 `import os for filename in os.listdir("path"): fin=open("path\%s" %filename) #print fin fout=open("newdata.txt","w") #print fo
`import os
for filename in os.listdir("path"):
fin=open("path\%s" %filename)
#print fin
fout=open("newdata.txt","w")
#print fout
l=""
for line in fin:
p=line.strip().split("\t")
if p[3]=="Cycle" and p[4]=="Protein":
l+=line
fout.write(l)
#else:pass
# fin.close()
# fout.close()`
您在循环中以“w”模式打开文件,因此对于每个新文件,它将从头开始输出文件,您应该在循环外打开它,或者使用“w+”模式,而不是
w
,使用w+
模式谢谢,我在for循环外打开了新文件,现在它正在读取我的所有文件,虽然它仍然在循环,它读取目录中的每个文件3-4次,并给我一个输出。我只需要读取一次,我尝试了fin.close()和fout.close(),但得到了一个错误。