例如考虑文件a.csv
1 23 'better' 0
2 21 'bad' 0
3 34 'good' 0
Run Code Online (Sandbox Code Playgroud)
和b.csv
23 2
34 5
Run Code Online (Sandbox Code Playgroud)
我们可以得到结果:
1 23 'better' 2
2 21 'bad' 0
3 34 'good' 5
Run Code Online (Sandbox Code Playgroud)
感谢您使问题更清楚。此代码不会就地修改文件 A,而是使用输出文件 fileC。
import csv #imports module csv
filea = "fileA.csv"
fileb = "fileB.csv"
output = "fileC.csv"
delim = ";" #set your own delimiter
source1 = csv.reader(open(filea,"r"),delimiter=delim)
source2 = csv.reader(open(fileb,"r"),delimiter=delim)
#open csv readers
source2_dict = {}
# prepare changes from file B
for row in source2:
source2_dict[row[0]] = row[1]
# write new changed rows
with open(output, "w") as fout:
csvwriter = csv.writer(fout, delimiter=delim)
for row in source1:
# needs to check whether there are any changes prepared
if row[1] in source2_dict:
# change the item
row[3] = source2_dict[row[1]]
csvwriter.writerow(row)
Run Code Online (Sandbox Code Playgroud)
我希望我能很好地理解你的意图。
仅对步骤进行简短说明: