python漢字轉拼音

場景說明

把中文漢字啦桌、轉成漢語拼音甜滨,包括:

  • 純漢字轉拼音
  • 漢字里面加有字母轉拼音
  • 轉加聲調的拼音
  • 轉用數(shù)字表示聲調的拼音

install

$ pip install pinyin
python.png

引用

GitHub-pinyin

代碼

pinyinutil.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import pinyin


def to_pinyin(var_str):
    """
    漢字[釣魚島是中國的]=>拼音[diaoyudaoshizhongguode]\n
    漢字[我是shui]=>拼音[woshishui]\n
    漢字[AreYou好]=>拼音[AreYouhao]\n
    漢字[None]=>拼音[]\n
    漢字[]=>拼音[]\n
    :param var_str:  str 類型的字符串
    :return: 漢字轉小寫拼音
    """
    if isinstance(var_str, str):
        if var_str == 'None':
            return ""
        else:
            return pinyin.get(var_str, format='strip', delimiter="")
    else:
        return '類型不對'

測試代碼:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import unittest
from util.pinyinutil import *
from pinyin._compat import u

class TestPinYin(unittest.TestCase):
    def test_to_pinyin(self):
        list = ['釣魚島是中國的', '我是shui', 'AreYou好', None, '']
        for i in list:
            print('漢字[%s]=>拼音[%s]' % (i, to_pinyin(str(i))))

    def test_get(self):
        self.assertEqual(pinyin.get('你好'),
                         pinyin.get('你好', format="diacritical"))
        self.assertEqual(pinyin.get(u('你好'), format="strip"), u('nihao'))
        self.assertEqual(pinyin.get(u('你好'), format="numerical"), u('ni3hao3'))
        self.assertEqual(pinyin.get(u('你好'), format="diacritical"), u('nǐhǎo'))
        self.assertEqual(pinyin.get('你好嗎?'), u('nǐhǎoma?'))
        self.assertEqual(pinyin.get('你好嗎雳殊?'), u('nǐhǎoma赘风?'))

        self.assertEqual(pinyin.get('你好'), u('nǐhǎo'))
        self.assertEqual(pinyin.get('葉'), u('yè'))
        self.assertEqual(pinyin.get('少女'), u('shǎonv?'))

    def test_get_with_delimiter(self):
        self.assertEqual(pinyin.get('你好', " "), u('nǐ hǎo'))
        self.assertEqual(pinyin.get('你好嗎?', " "), u('nǐ hǎo ma ?'))
        self.assertEqual(pinyin.get('你好嗎影暴?', " "), u('nǐ hǎo ma 续语?'))

    def test_get_initial_with_delimiter(self):
        self.assertEqual(pinyin.get_initial('你好', "-"), u('n-h'))
        self.assertEqual(pinyin.get_initial('你好嗎?', "-"), u('n-h-m-?'))
        self.assertEqual(pinyin.get_initial('你好嗎?', "-"), u('n-h-m-肝箱?'))

    def test_get_initial(self):
        self.assertEqual(pinyin.get_initial('你好'), u('n h'))
        self.assertEqual(pinyin.get_initial('你好嗎?'), u('n h m ?'))
        self.assertEqual(pinyin.get_initial('你好嗎哄褒?'), u('n h m ?'))

        self.assertEqual(pinyin.get_initial('你好'), 'n h')

    def test_mixed_chinese_english_input(self):
        self.assertEqual(pinyin.get('hi你好'), u('hinǐhǎo'))

    def test_correct_diacritical(self):
        self.assertEqual(pinyin.get("操"), u("cāo"))
        self.assertEqual(pinyin.get("小"), u("xiǎo"))
        self.assertEqual(pinyin.get("絕"), u("jué"))
        self.assertEqual(pinyin.get("被"), u("bèi"))
        self.assertEqual(pinyin.get("略"), u("lvè"))

    if __name__ == '__main__':
        unittest.main()
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末煌张,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子退客,更是在濱河造成了極大的恐慌骏融,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件萌狂,死亡現(xiàn)場離奇詭異档玻,居然都是意外死亡,警方通過查閱死者的電腦和手機茫藏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門误趴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人务傲,你說我怎么就攤上這事凉当。” “怎么了售葡?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵看杭,是天一觀的道長。 經(jīng)常有香客問我挟伙,道長楼雹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任尖阔,我火速辦了婚禮贮缅,結果婚禮上,老公的妹妹穿的比我還像新娘介却。我一直安慰自己谴供,他們只是感情好,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布筷笨。 她就那樣靜靜地躺著憔鬼,像睡著了一般龟劲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上轴或,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天昌跌,我揣著相機與錄音,去河邊找鬼照雁。 笑死蚕愤,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的饺蚊。 我是一名探鬼主播萍诱,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼污呼!你這毒婦竟也來了裕坊?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤燕酷,失蹤者是張志新(化名)和其女友劉穎籍凝,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體苗缩,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡饵蒂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了酱讶。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片退盯。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖泻肯,靈堂內(nèi)的尸體忽然破棺而出渊迁,到底是詐尸還是另有隱情,我是刑警寧澤软免,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布宫纬,位于F島的核電站年枕,受9級特大地震影響太伊,放射性物質發(fā)生泄漏揩徊。R本人自食惡果不足惜走芋,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一齿梁、第九天 我趴在偏房一處隱蔽的房頂上張望综液。 院中可真熱鬧许饿,春花似錦库倘、人聲如沸曹锨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽沛简。三九已至齐鲤,卻和暖如春斥废,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背给郊。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工牡肉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人淆九。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓统锤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親炭庙。 傳聞我的和親對象是個殘疾皇子饲窿,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容