我的代码有一个问题--它没有进入循环"for line in f2“。此代码用于比较两个文件,如果一个文件的第0列中的字符串与第二个文件的第1列中的字符串匹配,则将其写到该文件中。
我是Python的初学者,所以我不知道哪里出了问题。我试着调试,但没有提供任何帮助。有人知道我做错了什么吗?
f1=open("D:\\bowtie2\\posortowane_cale_test.csv","w")
with open("D:\\bowtie2\\dobazy228k_test.csv") as f:
for yy in f:
y=yy.split(";")
#print(y)
#sp1=y[1]
with open ("D:\\bowtie2\\zliczone_test.csv") as f2:
for xx in f2:
xx=xx[0:len(xx)-1]
x=xx.split(";")
for line in f2:
sp1=y[0]
sp2=x[1]
print("bb")
if sp1==sp2:
print("aaa")
f1.write(x[1]+";"+y[0]+"\n")#";"+x[1]+";"+x[2]+";"+x[3]+";"+x[6]+";"+x[7]+";"+x[8]+";"+sp1+"/"+sp2+"\n")
f2.close()
f.close()
f1.close()发布于 2019-08-14 19:58:38
在第一次完成读取后,使用f2.seek(0)再次跳到文件的开头。即使您没有直接使用读取方法,读取指针仍会移动到最后一个读取字节/字符之后的位置。
发布于 2019-08-14 20:13:13
回答建议
您的缩进级别似乎是关闭的,因为您首先迭代f,变量y被覆盖。只有在那时,您才会尝试比较。此外,for xx in f2:等同于for line in f2:。如果我对您的代码的解释是正确的,那么删除for line in f2:并打算包括with open ("D:\\bowtie2\\zliczone_test.csv") as f2:在内的所有内容以及之后的一切都会修复代码。
附注
注意,您可以在字符串之前使用r
"D:\bowtie2\posortowane_cale_test.csv“
要将以下字符串解释为原始字符串,意味着字符串中的*不再被视为转义字符,您可以复制粘贴文件路径:
r"D:\bowtie2\posortowane_cale_test.csv"
https://stackoverflow.com/questions/57494184
复制相似问题