python實現漢字轉拼音和讀寫excel
阿新 • • 發佈:2019-01-28
本文再次見證python是對付雜活的利器。不過,為什麼這麼多雜活呢?最近接到上級的任務,要在網路上收集一大批人圖片,主頁等資訊,然後將這些資訊填入到Excel表格。其中有一個令人髮指地無聊的工作就是要將所有人的英文名寫好整理好,由於都是中國人,因此,這工作也就是在考驗我的漢語拼音水平。
於是,我想到了python。在網上找了一些資訊,得出如下的思路:
1、漢字轉拼音
github上有人實現好了,我只需用現成的。
2、操作excel
關於python操作excel,由於網上某些低質量博文的誤導,多走了不少彎路。直到看到:
這樣,剩下的問題就是寫指令碼了。
現在,excel的格式如下:
school_name |
name_cn | name_en |
Tianjin University | 周天 | |
Tianjin University | 韓冬 | |
Tianjin University | 李興 |
#!/usr/bin/python #-*-coding:utf-8-*- from pinyin import PinYin #module for excel handle import xlrd from xlutils.copy import copy def name_tran(str): test=PinYin() test.load_word() str[0] family=test.hanzi2pinyin(string=str[0])[0] last=u'' print str[1:] for word in test.hanzi2pinyin(string=str[1:]): last=last+word name_en=last.title()+u' '+family.title() return name_en def file_fill(file_name,sheet_name,row_count): #開啟Excel檔案讀取資料 data = xlrd.open_workbook(file_name) #獲取一個工作表 #table = data.sheets()[0]#通過索引順序獲取 #table = data.sheet_by_name(sheet_name)#通過名稱獲取 table = data.sheet_by_index(3) #通過索引順序獲取 #using xlutils to modify excel wb = copy(data) #通過get_sheet()獲取的sheet,有write()方法 ws = wb.get_sheet(3) for i in range(1,row_count): name_cn=table.cell(i,1).value print name_cn try: name_en=name_tran(name_cn) ws.write(i,2,name_en) print name_en except: print i+1,"th row fail to translate." wb.save(file_name) return "Over!" if __name__=="__main__": file_fill(u"scholar&school.xls",u"Scholars",442)
程式碼執行之後,excel表的name_en列被填充,如下:
school_name | name_cn | name_en |
Tianjin University | 周天 | Tian Zhou |
Tianjin University | 韓冬 | Dong Han |
Tianjin University | 李興 | Xing Li |