设为首页 收藏本站
查看: 3169|回复: 0

[经验分享] python快速入门四(上) 之 正则表达式 异常处理 随机数

[复制链接]
发表于 2017-5-8 09:49:38 | 显示全部楼层 |阅读模式
以下python代码主要用于向一个文件输出一组数据信息
#!/python
from random import randint, choice
from string import lowercase
from sys import maxint
from time import ctime
import time
import os
doms = ('com', 'edu', 'net', 'org', 'gov')
#file create
fname = time.strftime('%Y-%m-%d', time.localtime(time.time())) + '_lch'
#if not os.path.exists(fname):
fobj = open(fname,'w')
for i in range(randint(5,10)):
dtint = randint(0,maxint-1)
dtstr = ctime(dtint)
showter = randint(4,7)
em = ''
for j in range(showter):
em += choice(lowercase)
longer = randint(showter, 12)
dn = ''
for j in range(longer):
dn += choice(lowercase)
temp = '%s::%s@%s.%s::%d-%d-%d' % (dtstr, em, dn, choice(doms), dtint, showter, longer)
print temp
fobj.write('%s\n' % temp)
fobj.close()
文件名 2010-12-01_lch
输出信息如下(因为是随机的,可能不一样):
Mon Mar 26 05:36:19 1984::gebeqir@keyduzm.org::449098579-7-7
Thu Sep 11 01:34:17 2008::moped@nmyqfiisl.org::1221068057-5-9
Tue May 04 03:54:38 1993::ttbi@huofkb.net::736458878-4-6
Sat Oct 27 04:48:53 2029::bzdu@zvrvtiamxk.org::1887742133-4-10
Wed Mar 22 02:43:10 1972::qbfcdi@soougt.com::70051390-6-6
Fri Mar 08 13:23:53 2030::bpqa@noygt.edu::1899177833-4-5
Sat Sep 25 23:27:34 2032::roepo@jnoyxsisom.gov::1979738854-5-10
Fri Jan 11 10:10:08 2002::dreizey@dqwfurbz.com::1010715008-7-8
Thu Jan 04 13:37:52 2024::thbjkie@jcbtzlruhqnc.gov::1704346672-7-12
Tue Jan 03 17:12:38 2006::faiq@pohfvoddful.gov::1136279558-4-11

接下来我们通过这个程序来提取2010-12-01_lch文件的邮件地址信息
import re
fobj = open('2010-12-01_lch','r')
patt = '\w+@\w+\.(com|edu|net|org|gov)'
for eachLine in fobj.readlines():
print re.search(patt, eachLine).group()
fobj.close()

提取的邮件地址信息如下:
gebeqir@keyduzm.org
moped@nmyqfiisl.org
ttbi@huofkb.net
bzdu@zvrvtiamxk.org
qbfcdi@soougt.com
bpqa@noygt.edu
roepo@jnoyxsisom.gov
dreizey@dqwfurbz.com
thbjkie@jcbtzlruhqnc.gov
faiq@pohfvoddful.gov

下面这段代码练习异常:
#!python
#
# myexc.py
#
import os, socket, errno, types, tempfile
from tempfile import mktemp
class NetworkError(IOError):
pass
class FileError(IOError):
pass
def upArgs(args, newarg=None):
if isinstance(args, IOError):
myargs = []
myargs.extend([arg for arg in args])
else:
myargs = list(args)
if newarg:
myargs.append(newarg)
return tuple(myargs)
def fileArgs(file, mode, args):
if args[0] == errno.EACCES and 'access' in dir(os):
perms = ''
permd = {'r':os.R_OK, 'w':os.W_OK, 'x':os.X_OK}
pkeys = permd.keys()
pkeys.sort()
pkeys.reverse()
for eachPerm in 'rwx':
if os.access(file, permd[eachPerm]):
perms += eachPerm
else:
perms +='-'
if isinstance(args, IOError):
myargs = []
myargs.extend([arg for arg in args])
else:
myargs = list(args)
myargs[1] = "'%s' %s (perms: '%s')" % (mode, myargs[1], perms)
myargs.append(args.filename)
else:
myargs = args
return tuple(myargs)
def myconnect(sock, host, port):
try:
sock.connect((host, port))
except socket.error, args:
myargs = upArgs(args)
if len(myargs) == 1:
myargs = (errno.ENXIO, myargs[0])
raise NetworkError, upArgs(myargs, host +':'+str(port))        
def myopen(file, mode='r'):
try:
fo = open(file, mode)
except IOError, args:
raise FileError, fileArgs(file, mode, args)
return fo
def testfile():
file = mktemp()
f = open(file, 'w')
f.close()
for eachTest in ((0, 'r'), (0100, 'r'),
(0400, 'w'), (0500, 'w')):
try:
os.chmod(file, eachTest[0])
f = myopen(file, eachTest[1])
except FileError, args:
print "%s: %s" % \
(args.__class__.__name__, args)
else:
print file, "opened ok... perm ignored"
f.close()
os.chmod(file, 0777)    # enable all perms
os.unlink(file)
def testnet():
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
for eachHost in ('deli', 'www'):
try:
myconnect(s,'192.1.9.125',80)
except NetworkError, args:
print "%s: %s" % (args.__class__.__name__, args)
if __name__ == '__main__':
testnet()
testfile()  

下面这一段主要是我在写这些小的练习时的一些随笔(都写在了一个文件里面了)
#import string
#for x in range(1, 11):
#    print string.rjust('x', 2)
#import os
#fobj = open('text.txt','w')
#fobj.writelines('test')
#fobj.close()

#import time
#print time.time()
#print time.localtime(time.time())
#print time.strftime('%Y-%m-%d', time.localtime(time.time()))

import re
patt = '\w+@\w+\.(com|gov|edu|net|org)'
temp = 'Mon Mar 26 05:36:19 1984::gebeqir@keyduzm.org::449098579-7-7'
print re.search(patt,temp).group()

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-374505-1-1.html 上篇帖子: python(vs. erlang)学习笔记之五 —— 数据类型 & 数据结构之二 下篇帖子: Ruby vs Python 第2波
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表