当前,我的程序具有在导入的csv文件中搜索特定文本值并将其更改为所需值的功能,并输出一个csv文件。我现在遇到的问题是:有没有一种方法可以将搜索限制到特定的列,例如,如果“ hob”查找的文本并且我们将其替换为“ TEST”,则hoboken的city字段将更改为Testobken。我对python来说还很陌生,所以如果这很容易解决,我深表歉意。这是我当前的代码。
import csv
ifile = open('testbook.csv', 'rb')
reader = csv.reader(ifile,delimiter='\t')
ofile = open('output.csv', 'wb')
writer = csv.writer(ofile, delimiter='\t')
findlist = ['Australia', 'Mexico', 'United States', 'hob']
replacelist = ['Kangaroo', 'Spider Monkey', 'Eagle', 'Test']
rep = dict(zip(findlist, replacelist))
def findReplace(find, replace):
s = ifile.read()
for item, replacement in zip(findlist, replacelist):
s = s.replace(item, replacement)
ofile.write(s)
for item in findlist:
findReplace(item, rep[item])
ifile.close()
ofile.close()
示例输入: 澳大利亚澳大利亚美国美国 墨西哥墨西哥霍博肯
示例输出: 袋鼠袋鼠鹰鹰 蜘蛛猴蜘蛛猴Testoken
答案 0 :(得分:0)
您需要使用正则表达式。 \b
表示您将只替换完整的单词。像这样:
import re
def findReplace(s, find, replace):
s = re.sub(r"\b%s\b" % find , replace, s)
return s
s = "rest and don't get arrested"
s = findReplace(s, "rest", "run")
print(s)
这将打印run and don't get arrested
。