python的拼音_Python之拼音拆分
经常会需要用到将zhangwei转化为ZhangWei、Zw、Zhangw之类的,就涉及到一个拼音拆分算法,这里写了一个demo分享给大家
我的思路是先将声母转换为大写,然后就可以根据大写字母来分割单个拼音
学的拼音早忘差不多了,百度了一下,声母有bpmfdtnlgkhjqxrzczyw
转化代码
def sm(strs):
smlist = 'bpmfdtnlgkhjqxrzcsyw'
for s in smlist:
strs = strs.replace(s,s.upper())
return strs
然后发现有个问题,韵母中也包含了声母的元素,zhangwei就会变成ZHaNGWei
发现两个问题,一个是Zh、Ch、Sh这类的包含了声母h,一个是er、an、en、in、un、vn、ang、eng、ing、ong这类的包含了声母r、n、g
于是再加一个转换
def sm(strs):
smlist = 'bpmfdtnlgkhjqxrzcsyw'
nosm = ['eR','aN','eN','iN','uN','vN','nG','NG']
rep = {'ZH':'Zh','CH':'Ch','SH':'Sh'}
for s in smlist:
strs = strs.replace(s,s.upper())
for s in nosm:
strs = strs.replace(s,s.lower())
for s in rep.keys():
strs = strs.replace(s,rep[s])
return strs
这时候zhangwei已经可以转为ZhangWei了
在进行批量转换的时候又遇到一个问题,碰到chenguiying(陈桂英)这种拼音的时候,会转化为ChenguiYing,这是因为r、n、g既可以做结尾,也可以做声母,于是又对nosm这个list进行一次判断,发现这类后,再往后判断一个字符,判断是否在声母表中
def sm(strs):
smlist = 'bpmfdtnlgkhjqxrzcsyw'
nosm = ['eR','aN','eN','iN','uN','vN','nG','NG']
rep = {'ZH':'Zh','CH':'Ch','SH':'Sh'}
for s in smlist:
strs = strs.replace(s,s.upper())
for s in nosm:
strs = strs.replace(s,s.lower())
for s in rep.keys():
strs = strs.replace(s,rep[s])
for s in nosm:
tmp_num = 0
isOk = False
while (tmp_num < len(strs)) and (isOk==False):
try:
tmp_num = strs.index(s.lower(),tmp_num)
except:
isOk = True
else:
tmp_num = tmp_num + len(s)
if strs[tmp_num:tmp_num+1].lower() not in smlist:
strs = strs[:tmp_num-1]+strs[tmp_num-1:tmp_num].upper()+strs[tmp_num:]
return strs
这时候已经可以提取声母了,剩下就简单了,碰到大写字母后就是一个拼音的开始,提取简拼就只找大写字母
拆分
def onep(strs):
restr = ''
strs = sm(strs)
for s in strs:
if 'A' <= s and s <= 'Z':
restr = restr + ' ' + s
else:
restr = restr + s
restr = restr[1:]
restr = restr.lower()
return restr.split(' ')
返回
['chen','gui','ying']
简拼提取
def simplep(strs):
restr = ''
strs = sm(strs)
for s in strs:
if 'A' <= s and s <= 'Z':
restr = restr + s
restr = restr.lower()
return restr
返回
cgy
然后就可以玩很多了
附一个通过拼音生成弱口令字典的脚本
#!/usr/bin/python
# Author : wkong
# Crack
def clearChar(chars):
reStr = ['\n','\r','\t',' ']
for reS in reStr:
chars = chars.replace(reS, '')
return chars
def sm(strs):
smlist = 'bpmfdtnlgkhjqxrzcsyw'
nosm = ['eR','aN','eN','iN','uN','vN','nG','NG']
rep = {'ZH':'Zh','CH':'Ch','SH':'Sh'}
for s in smlist:
strs = strs.replace(s,s.upper())
for s in nosm:
strs = strs.replace(s,s.lower())
for s in rep.keys():
strs = strs.replace(s,rep[s])
for s in nosm:
tmp_num = 0
isOk = False
while (tmp_num < len(strs)) and (isOk==False):
try:
tmp_num = strs.index(s.lower(),tmp_num)
except:
isOk = True
else:
tmp_num = tmp_num + len(s)
if strs[tmp_num:tmp_num+1].lower() not in smlist:
strs = strs[:tmp_num-1]+strs[tmp_num-1:tmp_num].upper()+strs[tmp_num:]
return strs
def simplep(strs):
restr = ''
strs = sm(strs)
for s in strs:
if 'A' <= s and s <= 'Z':
restr = restr + s
restr = restr.lower()
restr = restr.capitalize()
return restr
def rePass(name):
uList = []
uList.append(user.capitalize())
uList.append(sm(user))
uList.append(simplep(user))
pwdList = []
ce = ['!@#123','123!@#','@123','@1234','@12345','@123456','123','1234','12345','123456','123.','1234.','12345.','123456.','123123','abc','abc@123','qwer!@#','!@#qwer','qwe!@#','!@#qwe','!QAZ2wsx','1q2w3e']
for s in ce:
for u in uList:
pwdList.append(u+s)
return pwdList
def autoCrack(username, password):
print(username+':'+password)
if __name__ == '__main__':
userFile = 'zhangwei.txt'
pUserFile = open(userFile, 'r')
userList = pUserFile.readlines()
pUserFile.close()
for user in userList:
user = clearChar(user)
pwd = rePass(user)
for pw in pwd:
autoCrack(user, pw)
image.png
python的拼音_Python之拼音拆分相关推荐
- python剔除字母_python去除拼音声调字母,替换为字母的方法
第一种方法 import sys import unicodedata s = "Lǐ Zhōu Wú" remap = { # ord返回ascii值 ord('t'): '', ...
- python分割数字_python实现整数拆分,输出拆分序列
昨天笔试VIPKID有一道关于整数拆分的题目,要求输出拆分后的序列,当时没有做出来,记录一下可以实现的想法: 题目示例: 从键盘读入一个数 n, 输出所有和为 n 的子序列和,包括 n 测试用例: 输 ...
- python读取excel汉字转成拼音_python 批量将中文名转换为拼音
有时在处理文件时候,我们需要将中文姓名转换为拼音,或者是转换为拼音首字母,本文将介绍三种Python实现的方法,最后给一个批量操作的代码案例! 一.xpinyin 开门见山,Python中文字转拼音可 ...
- python 将中文变为拼音_python 批量将中文名转换为拼音
有时在处理文件时候,我们需要将中文姓名转换为拼音,或者是转换为拼音首字母,本文将介绍三种python实现的方法,最后给一个批量操作的代码案例! 一.xpinyin 开门见山,python中文字转拼音可 ...
- python读取excel汉字转成拼音_Python语言之用Python将全部中文姓名转为拼音
本文将介绍三种用Python将中文姓名转换为拼音的方法,Python的实用技巧希望对Python的学习有所帮助. 有时在处理文件时候,我们需要将中文姓名转换为拼音,或者是转换为拼音首字母,本文将介绍三 ...
- python直接把汉字转换为拼音
今天任务要把之前获取到的中文例句全部转换成拼音.最开始打算通过爬虫从那些在线转换的网站上面爬取下来.但是所有的网站的都如下图的网站一样,通过页面中js动态加载的.直接从url入手行不通.按我现阶段多掌 ...
- python怎么读汉字翻译拼音_用python3.6把汉字转化为拼音
本文,介绍一下用python把汉字转化为拼音的方法.这是语音合成的一种实现方法. 工具/原料 电脑 python3.6 方法/步骤 1 把一个汉字转化为unicode编码. a = u'水' b = ...
- python将汉字转化为拼音
python将汉字转化为拼音 安装 依赖python包:pypinyin 直接pip install pypinyin即可 常用方法及场景案例 from pypinyin import pinyin, ...
- 李亚涛:python中文如何转换成拼音?
大家好,今天给大家分享一个我之前写程序遇到的一个问题,就是我在采集某房产信息的时候,由于字段非常多,有将近100多个,而且很多字段是相互关联的 我采集是直接导入到数据库,为了防止重复,以及设置一个唯一 ...
- python输出字典_Python如何将字典键和值拆分为单独的列表?(代码示例)
在Python中如何将给定字典拆分为键和值的列表?下面本篇文章就来给大家介绍几种实现方法,希望对大家有所帮助.[视频教程推荐:Python教程] 方法一:使用内置函数:keys()和values() ...
最新文章
- bert+lstm+crf ner实体识别
- 香港居民换领新智能身份证 市民对办理过程表满意
- python编程入门到实践目录-Python编程从入门到实践笔记——文件
- Android 开发, Android 安全 精品资料收集
- matlab语言主要功能,2014年秋季学期《MATLAB语言及应用》课程试题-2
- HighCharts:隐藏最下方logo
- postgresql 窗口函数
- vscode 日志文件_vscode 日志文件_Visual Studio Code(VS code)介绍
- vscode 搭建Vue项目及引入elementUI
- cad横断面图转文本
- 新电脑自带win11刷win10 系统之后出现的触摸屏/板失灵等问题
- 传感器模组:手机摄像头模组-1亿像素是如何实现的?
- 金融行业市场占有率超五成,ZDNS筑牢金融科技网络根基
- Java 内部类简介,理解,特点,注意事项
- 服务器需要支持5g,5G时代需要什么样的服务器?
- 腾讯云Coding平台入门指引
- fiddler4抓包修改Request,断点设置
- DDCTF2020 Writeup
- 北大原题 我爱你啊 字符串处理
- 锁定计算机 k 是什么意思,计算机中的K、M、G、T到底指的是
热门文章
- SpaceX的代码开源了,来看看火箭技术的代码.Spacex Rest API设计很有参考价值
- 关于图像傅里叶变换得到的频谱图的通俗理解
- 有监督机器学习训练流程---人工智能工作笔记0015
- 计算机证件照颜色,更换证件照底色只需10秒,关键还不要钱!这4种方法你一定要学...
- 【转载】白素贞的身世之谜
- Redis和MySQL如何保持数据一致性
- 分享CrystalDiskInfo8.2.4与CrystalDiskMark6.0.2个性版本下载
- C# 上位机界面添加扫码枪输入
- python求均值函数_python求列表平均值函数
- mysql 求几何平均值_回忆高中数学--各种平均数公式