发布于 2017-07-20 12:06:19 | 205 次阅读 | 评论: 0 | 来源: 网友投递
这里有新鲜出炉的Python3 Cookbook中文版,程序狗速度看过来!
Python编程语言
Python 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。
本文实例讲述了Python正则表达式匹配中文用法。分享给大家供大家参考,具体如下:
#!/usr/bin/python
#-*- coding:cp936-*-#思路,将str转换成unicode,方可用正则表达式,前提是,要知道文件的编码,本例中是gbk
import cPickle as mypickle
import re
import sys
if (__name__=='__main__'):
fid1=file('demo.txt','r');#demo.txt写入字符如:phperz
p=re.compile('(^\s+|\s+$)');
phanzigbk=re.compile('[\\x20-\\x7f]');
phanzi=re.compile(u'[\u4e00-\u9fa5]');#这里要加u,注意
commlines=fid1.readlines();
fid1.close();
dictfamilyname={};
dictfirstname={};
for line in commlines:
line=p.sub('',line);
print type(line);
print line;
uline=unicode(line,'gbk');
print type(uline);
candidates=phanzi.findall(uline);
print len(candidates);
if(len(candidates)==2):
print candidates[0];
familynamegbk=candidates[0].encode('gbk');#把unicode型的变量变成str型的变量
firstnamegbk=candidates[1].encode('gbk');
if(dictfamilyname.has_key(familynamegbk)):
dictfamilyname[familynamegbk]=dictfamilyname[familynamegbk]+1;
else:
dictfamilyname[familynamegbk]=1;
if(dictfirstname.has_key(firstnamegbk)):
dictfirstname[firstnamegbk]=dictfirstname[firstnamegbk]+1;
else:
dictfirstname[firstnamegbk]=1;
familynameitems=dictfamilyname.items();
print familynameitems;
firstnameitems=dictfirstname.items();
familynameitems.sort(key=lambda d:d[1],reverse=True);
firstnameitems.sort(key=lambda d :d[1],reverse=True);
fid=file('familyname.txt','w');
for m in familynameitems:
s=m[0]+'\t'+str(m[1]);
fid.write(s);
fid.write('\n');
fid.close();
fid=file('firstname.txt','w');
for m in firstnameitems:
s=m[0]+'\t'+str(m[1]);
fid.write(s);
fid.write('\n');
fid.close();
print 'finish'
运行效果图如下:
希望本文所述对大家Python程序设计有所帮助。