如何使用 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()
我有 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()