使用python和csv嵌套For循环
我在用python编写带有使用python和csv嵌套For循环,python,loops,csv,Python,Loops,Csv,我在用python编写带有csv对象的嵌套for循环时遇到问题。我想解析这两个csv文件,并比较其中的一些部分。因此,我对下面的嵌套循环进行了编码。 我所期望的是python解析外部循环的第一项的内部循环,然后再次解析外部循环的第二项的内部循环,依此类推。 发生的事情是,内部循环被解析,然后外部循环被传递,甚至没有再次进入内部循环 当使用非csv对象时,如num_list=[1,2,3]这与预期的效果类似 谢谢 import csv csvfile = open('/Users/rene/Do
csv
对象的嵌套for循环时遇到问题。我想解析这两个csv
文件,并比较其中的一些部分。因此,我对下面的嵌套循环进行了编码。
我所期望的是python解析外部循环的第一项的内部循环,然后再次解析外部循环的第二项的内部循环,依此类推。
发生的事情是,内部循环被解析,然后外部循环被传递,甚至没有再次进入内部循环
当使用非csv
对象时,如num_list=[1,2,3]
这与预期的效果类似
谢谢
import csv
csvfile = open('/Users/rene/Downloads/Test/Export.csv', newline='', encoding='windows-1252')
spamreader = csv.reader(csvfile, dialect='excel', delimiter=';')
csvfile1 = open('/Users/rene/Downloads/Test/Transfer.csv', newline='', encoding='windows-1252')
spamreader1 = csv.reader(csvfile1, dialect='excel', delimiter=';')
for row in spamreader:
print("1row:"+row[1])
for row1 in spamreader1:
print("2row:"+row[1])
print("2row1:"+row1[0])
csvfile.close()
csvfile1.close()
csv.reader
对象是迭代器,当它们被使用时会耗尽。因此,spamreader1
在外部循环的第一次迭代后已经为空
只需将您在内部循环中迭代的spamreader1
转换为列表
,即可对其进行多次迭代:
# ...
# collect all rows in a list
spamreader1 = list(csv.reader(csvfile1, dialect='excel', delimiter=';'))
for row in spamreader:
# ...
for row1 in spamreader1:
# now this will work as you expect
谢谢很有魅力