#!/usr/bin/env python

# -*- coding:utf-8 -*-

"""

原版代码:https://github.com/cleverdeng/pinyin.py

新增功能:

1、可以传入参数firstcode:如果为true,只取汉子的第一个拼音字母;如果为false,则会输出全部拼音;

2、修复:如果为英文字母,则直接输出;

3、修复:如果分隔符为空字符串,仍然能正常输出;

4、升级:可以指定词典的文件路径

"""

__version__ = '0.9'

__all__ = ["PinYin"]

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("NotFoundFile")

with file(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 hanzi2pinyin(self, string="", firstcode=False):

result = []

if not isinstance(string, unicode):

string = string.decode("utf-8")

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 hanzi2pinyin_split(self, string="", split="", firstcode=False):

"""提取中文的拼音

@param string:要提取的中文

@param split:分隔符

@param firstcode: 提取的是全拼还是首字母?如果为true表示提取首字母,默认为False提取全拼

"""

result = self.hanzi2pinyin(string=string, firstcode=firstcode)

return split.join(result)

if __name__ == "__main__":

test = PinYin()

test.load_word('word.data')

string = "Java程序性能优化-让你的Java程序更快更稳定"

print "in: %s" % string

print "out: %s" % str(test.hanzi2pinyin(string=string))

print "out: %s" % test.hanzi2pinyin_split(string=string, split="", firstcode=True)

print "out: %s" % test.hanzi2pinyin_split(string=string, split="", firstcode=False)

python缩写转换成全拼_Python中文转拼音代码(支持全拼和首字母缩写)相关推荐

  1. input框输入中文内容,另一个input框中时时显示转换后的拼音首字母缩写

    最近项目中需要完成在input标签内输入中文字符,动态的在另一个input中时时显示中文字符的首字母缩写(首字母都是大写).直接上代码: value属性可以写成value="",图 ...

  2. Java获取中文拼音、中文首字母缩写和中文首字母

    我们有时候会遇到这样的情况,需要获取某些中文的拼音.中文首字母缩写和中文首字母,下面我将为大家介绍一下如何获取中文拼音的缩写. 1.项目建立和配置 首先,我们建立一个java项目,新建libs文件夹并 ...

  3. linux 中etc全拼,英语中“等等”缩写成为etc.吗?要加一点吗?全拼是...

    小编:英语中等等缩写成为etc.吗?要加一点吗?全拼是... 英语中等等缩写成为etc.吗?要加一点吗?全拼是... etc.是英语中等等缩写,全拼是 etcetera .要加一点,加一点是缩写词的稳 ...

  4. PinYin4j的基本使用 Java获取中文转拼音、获取中文拼音的首字母缩写

    前言 在实际开发中,可能会遇到根据用户输入的中文拼音首字母缩写,来查询对应数据的功能需求,本文将提供一个操作中文转拼音.获取拼音首字母的工具类CV即用. 一.PinYin4j 简介 : pinyin4 ...

  5. 迅搜(XunSearch)+ThinkPHP5实现标题的拼音或拼音首字母缩写搜索

    2019独角兽企业重金招聘Python工程师标准>>> 这是两年前学习Coreseek时在问答区问的一个问题: https://www.oschina.net/question/25 ...

  6. php汉字首字母缩写,迅搜(XunSearch)+ThinkPHP5实现标题的拼音或拼音首字母缩写搜索...

    这是两年前学习Coreseek时在问答区问的一个问题: 当时只是想了下,但没去做,现在学迅搜,又想到这个问题,干脆还是试试把它给做了吧 ^_^ 1.数据表字段 2.ThinkPHP5的model里做 ...

  7. mySQL提取姓氏_MySQL 提取姓名大写首字母缩写

    备注:测试数据库版本为MySQL 8.0 Table of Contents 一.需求 将全名转换为大写首字母缩写,比如下面的名字: Stewie Griffin 要求返回如下结果 S.G 二.解决方 ...

  8. 不使用pinyin4j, 通过字符串截取手段快速查询通讯录联系人的拼音(包括全拼和简拼)

    不使用pinyin4j, 通过字符串截取手段快速查询通讯录联系人的拼音(包括全拼和简拼) 刚开始我也是使用pinyin4j但是速度太慢8分钟还加载不完我的280个联系人数据,所以我选择另谋出路.发现有 ...

  9. 【python入门小知识】实现人名全大写,全小写,首字母大写

    python,实现人名全大写,全小写,首字母大写 user1="zhang san,\n" user2="li si,\n" user3="Wang ...

最新文章

  1. linux下查看服务器性能,linux命令查看服务器性能
  2. vue单选,多选,多选的内容显示在页面可删除
  3. 局域网聊天程序 java MySQL_课内资源 - 基于JAVA的局域网聊天软件的设计与实现(仿制QQ)...
  4. 最后2天,BDTC 2019 早鸟票即将售罄,超强阵容及议题抢先曝光!
  5. 手机modem开发(1)---MTK modem开发
  6. R语言 神经网络与深度学习(二)
  7. 系统之美——系统思考与认识系统
  8. 顺无盘linux win10包,(2018.05.25)网维大师9.0.6.0无盘-xp-win7x32-x64-Win10x64公包
  9. 荷兰国旗问题与快速排序
  10. 收集的tracker
  11. 用Html制作网页简单例子
  12. Echert 缩放后切换再数据,缩放大小没还原的解决办法
  13. python注释语句会不会被解释器过滤掉_Python注释
  14. 拆分单元格怎么弄?合并起来了怎么办?
  15. laas和saas_什么是IaaS,PaaS和SaaS及其区别
  16. c# 操作word光标
  17. 敏捷开发scrum学习笔记(更新中)
  18. 知乎App加密流量分析初探
  19. LED护眼灯真的可以护眼吗?2022专业护眼台灯品牌排行榜
  20. 给刚入市朋友的几点建议

热门文章

  1. Bailian4123 马走日【DFS】
  2. python hdf5 —— h5py
  3. matlab 音频处理、Python音频处理
  4. 非参贝叶斯(Bayesian Non-parameter)初步
  5. Linux Tricks —— 快速清空文本文件内容、文本内容追加(tee)
  6. 如何将 hadoop1.1.2/1.2.1 源码关联到 Eclipse
  7. STL::算法::常见算法
  8. 传递给 left 或 substring 函数的长度参数无效_MySQL:函数入门实例
  9. dr. unarchiver_1F 新店开业男士一生仅能定制一枚的钻戒,DR 教你用一生爱一人
  10. linux java运行class文件_jvm学习java文件运行过程