【发布时间】:2019-01-26 12:14:12
【问题描述】:
我要做的是打开两个 CSV 文件并仅打印文件 1 和文件 2 中列的内容匹配的行。我已经知道我应该得到 14 个结果,但是我正在使用的 CSV 文件的第一行被打印了 14 次。我哪里做错了?
file1 = open("../dir/file1.csv", "r")
for line in file1:
file1splitted = line.strip().split(",")
file2 = open("../dir/file2.csv", "r")
for line in file2:
file2splitted = line.strip().split(",")
for line in file1:
if file1splitted[0] == file2splitted [2]:
print (file1splitted[0],file1splitted[1], file2splitted[6], file2splitted[10], file2splitted[12])
file1.close()
file2.close()
【问题讨论】:
-
您在嵌套循环中践踏了
line循环变量。这是否是问题的原因,我不确定,但为了清楚起见,我建议使用不同的名称 -
在 for 循环中打开文件时要小心。可能会给你带来一些麻烦。 (不确定这是否是那里的问题)
-
我更喜欢将
open与with语句一起使用,以便我知道即使发生错误它也会关闭:with open("../dir/file1.csv", "r") as file1: