簡體   English   中英

如何在python中的csv文件中識別和替換單詞

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM