如何使用 python 在 csv 中查找和替换

how to find and replace in csv using python

我有 900 行 11 列的 csv 文件。它包含大约 4000 个链接,我想将其替换为 4000 个链接(我有另一个 csv 文件,其中包含第 1 列和第 2 列中的链接)。 我正在尝试使用 python 使其自动化(查找和替换) 这是我的代码,但它不起作用。实际上我没有收到任何错误,而是连续编程 运行 而没有给出任何结果。我运行 2. 3小时,无奈杀了它。

import csv 
def replace_all(text, dic):
  for i, j in dic.iteritems():
   text = text.replace(i, j)
 return text

with open('file_that_find_replace_data.csv', mode='r') as infile:
 reader = csv.reader(infile)
 d = {rows[0]:rows[1] for rows in reader}

f = open('main_file.csv','r') 
filedata = f.read() 
for row in filedata:
  newdata = replace_all(filedata, d)

f = open('main_file.csv','w') 
f.write(newdata) 
f.close()
print ('done')
for row in filedata:
  newdata = replace_all(filedata, d)

这将只留下 newdata 中文件的最后一行。也许 newdata += 而不是?或者在循环中写入输出行。而且,为什么不对两个文件都使用 csvfile?

我自己解决了 感谢大家的帮助

import csv
findd=[]
repl=[]
with open('find_replace_data.csv', mode='r') as infile:
  reader = csv.reader(infile)
  for rows in reader:
      a= rows[0]
      b= rows[1]
      findd.append(a)
      repl.append(b)



ifile = open('infile.csv', 'rb')
reader = csv.reader(ifile)
ofile = open('outfile.csv', 'wb')
writer = csv.writer(ofile)

rep = dict(zip(findd, repl))

s = ifile.read()
for item in findd:
    s = s.replace(item, rep[item])
ofile.write(s)
ifile.close()
ofile.close()