[英]how to identify and replace words in a csv file in python
我有兩個CSV文件,一個包含縮寫詞的句子,另一個是縮寫詞及其擴展名的列表。 我想在第一個CSV文件中標識每個縮寫,並用其擴展名替換它。 此CSV文件的外觀如下:
第一個文件樣本:
虛擬學術
副總裁財務和行政
vp學術和學生事務
vp公司服務和外部關系。 ....
第二個文件的樣本:
當選 :電氣
副總裁 : 副總統
...
這是我的代碼:
import csv
with open('firstFile.csv', 'rb') as sentence, open('secondFile.csv', 'rb')
as word,open('new.csv', 'wb') as out:
reader = csv.reader(sentence)
reader2 = csv.reader(word)
abbr_list = list(reader2)
filewriter = csv.writer(out, delimiter=' ')
result = ''
for row in reader:
for i in range (0,1453):
temp = abbr_list[i][0]
temp1 = abbr_list[i][1]
if temp in row[0]:
result = row[0].replace(temp,temp1)
row[0] = result
filewriter.writerow(row)
但是,我得到的結果不是我所期望的:
結果文件:
學術副校長
財務與行政副總裁
學術和學生事務副總裁
公司服務副總裁和執行官內部關系
有人可以幫助我更正我的代碼嗎?
字符串替換( row[0].replace
)不檢查它是否與整個單詞匹配。 因此,它匹配“ strat”並將“ administration”轉換為“ administrategyion”,然后將其再次更改為“ administrategyegyion”,並進行下一次替換,依此類推。
您可以切換到re
模塊以使用正則表達式進行字符串替換,也可以使用空格作為匹配項的一部分(例如row[0].replace(' '+temp+' ',' '+temp1+' ')
)) -但請注意,如果匹配位於字符串的開頭或結尾,則空格方法將失敗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.