代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Python
】
Python汉字转拼音
作者:
Dezai.CN
/ 发布于
2013/8/20
/
1164
# -*- coding: utf-8 -*- # ------------------------------------------------------------ # Script Name: convert.py # Creation Date: 2010-09-21 02:12 # Last Modified: 2011-11-12 18:38:13 # Copyright (c)2011, DDTCMS Project # Purpose: This file used for DDTCMS Project # ------------------------------------------------------------ ##################################### # Written by caocao # # Modified by huyoo353@126.com # # caocao@eastday.com # # http://nethermit.yeah.net # ##################################### # python. import sys,os import re import string class CConvert: def __init__(self): self.has_shengdiao = False self.just_shengmu = False self.spliter = '-' "Load data table" try: fp=open(os.path.join(settings.PROJECT_DIR, 'utils', 'convert-utf-8.txt')) except IOError: print "Can't load data from convert-utf-8.txt\nPlease make sure this file exists." sys.exit(1) else: self.data=fp.read().decode("utf-8")# decoded data to unicode fp.close() def convert1(self, strIn): "Convert Unicode strIn to PinYin" length, strOutKey, strOutValue, i=len(strIn), "", "", 0 while i<length: code1 =ord(strIn[i:i+1]) if code1>=0x4e02 and code1<=0xe863: strTemp = self.getIndex(strIn[i:i+1]) if not self.has_shengdiao: strTemp = strTemp[:-1] strLength = len(strTemp) if strLength<1:strLength=1 strOutKey += string.center(strIn[i:i+1], strLength)+" " strOutValue += self.spliter + string.center(strTemp, strLength) + self.spliter else:#ascii code; strOutKey+=strIn[i:i+1]+" " strOutValue+=strIn[i:i+1] + ' ' i+=1 ############################# #txlist = utf8String.split() #out=convert.convert(utf8String) #l=[] #for t in map(convert.convert, txlist): # l.append(t[0]) #v = '-'.join(l).replace(' ','').replace(u'--','-').strip('-') ############################# return [strOutValue, strOutKey] def getIndex(self, strIn): "Convert single Unicode to PinYin from index" if strIn==' ':return self.spliter if set(strIn).issubset("'\"`~!@#$%^&*()=+[]{}\\|;:,.<>/?"):return self.spliter # or return "" if set(strIn).issubset("-—!##%%&&()*,、。:;?? @@\{{|}}~~‘’“”《》【】++==×¥·… ".decode("utf-8")):return "" pos=re.search("^"+strIn+"([0-9a-zA-Z]+)", self.data, re.M) if pos==None: return strIn else: if not self.just_shengmu: return pos.group(1) else: return pos.group(1)[:1] def convert(self, strIn): "Convert Unicode strIn to PinYin" if self.spliter != '-' and self.spliter !='_' and self.spliter != '' and self.spliter != ' ': self.spliter = '-' pinyin_list=[] for c in strIn : pinyin_list.append(self.getIndex(c)) pinyin='' for p in pinyin_list: if p==' ': pinyin+= self.spliter continue if len(p)<2:# only shengmu,just get one char,or number #if p.isdigit(): # pinyin += p + ' ' #else: # pinyin += p + ' ' pinyin += p + ' ' else: if not self.has_shengdiao: p = p[:-1] pinyin += self.spliter + p + self.spliter pinyin = pinyin.replace(' ','') \ .replace(self.spliter+self.spliter,self.spliter) \ .strip(self.spliter+' ').replace(self.spliter+self.spliter,self.spliter) return pinyin
试试其它关键字
汉字转拼音
同语言下
.
比较两个图片的相似度
.
过urllib2获取带有中文参数的url内容
.
不下载获取远程图片的宽度和高度及文件大小
.
通过qrcode库生成二维码
.
通过httplib发送GET和POST请求
.
Django下解决小文件下载
.
遍历windows的所有窗口并输出窗口标题
.
根据窗口标题调用窗口
.
python 抓取搜狗指定公众号
.
pandas读取指定列
可能有用的
.
实现测量程序运行时间及cpu使用时间
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
Dezai.CN
贡献的其它代码
(
4037
)
.
多线程Socket服务器模块
.
生成随机密码
.
清除浮动样式
.
弹出窗口居中
.
抓取url的函数
.
使用base HTTP验证
.
div模拟iframe嵌入效果
.
通过header转向的方法
.
Session操作类
.
执行sqlite输入插入操作后获得自动编号的ID
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3