文字转拼音
import os.path class PinYin(object): def __init__(self): self.word_dict = {} def load_word(self, dict_file): self.dict_file = dict_file if not os.path.exists(self.dict_file): raise IOError("No Found Dict File.") with open(self.dict_file) as f_obj: for f_line in f_obj.readlines(): try: line = f_line.split(' ') self.word_dict[line[0]] = line[1] except: line = f_line.split(' ') self.word_dict[line[0]] = line[1] def word2pinyin(self, string="", firstcode=False): result = [] for char in string: key = '%X' % ord(char) value = self.word_dict.get(key, char) outpinyin = str(value).split()[0][:-1].lower() if not outpinyin: outpinyin = char if firstcode: result.append(outpinyin[0]) else: result.append(outpinyin) return result def word2pinyin_split(self, string="", split="", firstcode=False): result = self.word2pinyin(string=string, firstcode=firstcode) return split.join(result) def main(): pinyin = PinYin() pinyin.load_word('G:\Py_Workspace\Py_config\word.data') string = "Java程序性能优化-让你的Java程序更快更稳定" print("in: %s" % string) #print("out: %s" % str(pinyin.word2pinyin(string=string))) #print("out: %s" % pinyin.word2pinyin_split(string=string, split="", firstcode=True)) print("out: %s" % pinyin.word2pinyin_split(string=string, split="", firstcode=False)) if __name__ == "__main__": main()