我正在尝试替换 csv 文件中的多个字符串。这些字符串可能不在特定的列中。
我在这个线程中使用了示例Python replace multiple strings,即 wordpress 条目。我以为我有 CSV 模块,但我猜它没有替换功能。我尝试了以下方法,但它只替换了第一本字典。它必须首先完成第一个字典中的条目,第二个字典的顺序并不重要。
def replace_all(text, dic):
for i, j in dic.iteritems():
text = text.replace(i, j)
return text
f_dic = {'-':' '}
s_dic = {' ':' ',' ':' ','SASD D':'SASD-D','DC W':'DC-W',r'PROD\s\d':r'PROD\d'}
with open('file1.csv','r') as f:
text=f.read()
with open('file2.csv','w') as w:
text=replace_all(text,f_dic)
text=replace_all(text,s_dic)
w.write(text)
有人可以帮我弄这个吗?甚至更好的 csv 模块版本?
谢谢, B0T
编辑
这是我回答后的最终代码。有效。
import re
def replace_all(text, dic):
for i, j in dic.iteritems():
text = text.replace(i, j)
return text
f_dic = {'-':' '}
s_dic = {' ':' ',' ':' ','SASD D':'SASD-D','DC W':'DC-W'}
t_dic = {' ':' '}
with open('file1.csv','r') as f:
text=f.read()
text=replace_all(text,f_dic)
text=replace_all(text,s_dic)
text=replace_all(text,t_dic)
text=re.sub(r'PROD\s(?=[1-9])',r'PROD',text)
with open('file2.csv','w') as w:
w.write(text)