茕茕孑立 沆瀣一氣
踽踽獨行 醍醐灌頂
綿綿瓜瓞 奉為圭臬
龍行龘龘 犄角旮旯
娉婷袅娜 涕泗滂沱
呶呶不休 不稂不莠
這首《生僻字》,考驗的是“國文”硬實力。倘若實力不夠,其實可以拿Python來湊,畢竟庫多!今天就來說一個有意思的pypinyin庫,名字很直白,是Python版的拼音庫,用來将漢字轉為拼音。
先來看下代碼運作效果,比較喜歡将結果print到指令行的樣式:
當然,正規的操作是讀取漢字txt文本,生成注音版txt文本:
思路
很簡單,拼音庫可以把漢字轉化為拼音,那我們要做的就是讀取文本,擷取拼音,最後将文本和拼音重新拼接。代碼也不難,基本圍繞字元串和清單進行拼接操作,比較适合新手朋友拿來練手。
pypinyin庫
首先是安裝:pip install pypinyin
裝好後引入子產品:from pypinyin import pinyin
調用 pinyin(“生僻字”) 即可得到拼音清單 [[‘shēng’], [‘pì’], [‘zì’]]
讀寫txt文本
算是讀寫txt檔案的簡單應用:
txt_name = "生僻字"with open("%s.txt"%txt_name,encoding="UTF-8-sig") as f: content = f.read() input_str = content
result = transfer(input_str)#對讀取到的txt進行注音操作with open("%s_拼音.txt"%txt_name,'w',encoding='UTF-8-sig') as m: m.write(result)
拼接
首先會對讀入的文本進行整理,去除多餘的空格,将字元串中的漢字與清單中的拼音一一對應并拼接。
由于中文字元是占兩個位元組,以及讀寫txt時也會涉及到編碼格式,這部分的代碼費了些功夫,隻能說勉強做到格式整齊吧。
回顧
最初接觸一個讀取剪貼闆内容的pyperclip子產品,琢磨對剪貼闆中字元串如何操作。恰巧聽到《生僻字》,覺得既然逐字查拼音是個麻煩事,何不通過Python來批量添加拼音呢?很幸運,還真有大佬寫了這個pypinyin庫,在Github上也已有1500多顆星了~
昨天完成的小代碼,是對剪貼闆中複制的内容添加拼音,感覺實用性不強且操作不友善,故今天修改為讀取txt文本生成注音版本。
代碼下載下傳
https://github.com/pengfexue2/addPinyin
最後再放個《離騷》文本的注音,先txt文本:
以及偏愛的指令行格式:
程式員進階圈,一個有态度的公衆号