python汉字转拼音实例如下:
#encoding:utf-8 from pinyin import PinYin test=PinYin() test.load_word() print(test.hanzi2pinyin(string='钓鱼岛是中国的')) print(test.hanzi2pinyin_split(string='钓鱼岛是中国的',split='-')) 输出: ['diao','yu','dao','shi','zhong','guo','de'] 'diao-yu-dao-shi-zhong-guo-de' 从输出可以看出当split处为空时返回的是列表,当split处不为空时返回的是字符串 但程序存在两个问题,第一是当中文中夹带英文时,英文会丢失.第二则是hanzi2pinyin_split的返回值一会是列表,一会是字符串,让人比较迷糊. hanzi2pinyin.py修改版
hanzi2pinyin_split.py修改版#encoding:utf-8 def hanzi2pinyin(self,string=""): result=[] if not isinstance(string,'unicode'): string = string.decode('utf-8') for char in string: key= '%X' % ord(char) if not self.word_dict.get(key): result.append(char) else: result.append(self.word_dict.get(key,char).split()[0][:-1].lower()) return result
#encoding:utf-8 def hanzi2pinyin(self,string="",split=""): result=self.hanzi2pinyin(string=string) return split.join(result)