我正在使用一个程序(如下)来查看两个CSV文件之间某些列的相似性,然后在数据匹配某些规范时创建第三个(两列相同但第三列不相同)以便我可以更新e-邮件列表.
但是,当我在运行程序后尝试打开results.csv文件时,Windows Excel将只以只读模式打开程序.
有什么想法吗?
这是我的代码:
import csv
sample_data = open("sample.csv", "r")
lib_data = open("library.csv", "r")
csv1 = csv.reader(sample_data)
csv2 = csv.reader(lib_data)
results = open("results.csv", "w")
res_csv = csv.writer(results)
limit = 1071
limit2 = 1001
x = 0
y = 0
while (y != limit):
row1 = csv1.__next__()
while (x != limit2):
row2 = csv2.__next__()
if (row1[0] == row2[3] and row1[1] == row2[2] and row1[2] != row2[5]):
print ("SAMPLE:")
print (row1[0], ", ", row1[1], ", ", row1[2])
print ("LIBRARY:")
print (row2[3], ", ", row2[2], ", ", row2[5])
print("\n")
res_csv.writerow(row1)
x = x+1
y = y+1
x = 0
lib_data.seek(0)
Run Code Online (Sandbox Code Playgroud)
使用with以确保文件将被正确关闭:
with open("sample.csv", "r") as sample_data:
with open("library.csv", "r") as lib_data:
with open("results.csv", "w") as results:
# other code
Run Code Online (Sandbox Code Playgroud)
with如果你使用的是Python> = 2.7,你甚至可以将几个变量合二为一.