`
elan1986
  • 浏览: 167824 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python快速入门四(上) 之 正则表达式 异常处理 随机数

阅读更多
以下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()



分享到:
评论

相关推荐

    Python基础教程(crossin全60课).pdf

    - 建议的入门书籍:推荐适合初学者的Python入门书籍。 - 编程学习态度:强调对于初学者来说,先不要过多担心语言的优缺点,而是应该注重学习过程。 正则表达式的学习 - 正则表达式的概念:什么是正则表达式,它在...

    python基础教程至60课(基础)

    #### Python第57课:正则表达式(3) - **正则表达式实战**:通过具体的例子来练习正则表达式的应用。 #### Python第58课:正则表达式(4) - **正则表达式进阶**:进一步学习正则表达式的高级特性,如分组、反向...

    python学习笔记与简明教程

    ### Python学习笔记与简明教程知识点汇总 #### Python 第1课:安装 - **知识点**: - Python 安装包的选择... - 示例代码演示正则表达式的入门应用。 #### WhyPython?为什么用Python作为编程入门语言? - **知识点...

    python基础

    - 正则表达式在文本处理中的应用案例。 #### Python第59课:正则表达式(5) - **知识点**: - 正则表达式的特殊应用场景。 - 如何处理多行文本。 - 正则表达式的边界匹配和零宽断言。 #### Python第60课:...

    [Python学习手册(第4版)].源代码

    8. **正则表达式**:Python的re模块提供了正则表达式的功能,用于文本匹配和处理。通过"LP4E-examples",你可以了解如何编写和使用正则表达式。 9. **网络编程**:Python的socket模块使得网络通信变得简单。"LP4E-...

    python基础教程

    #### Python第57课:正则表达式(3) - **知识点**: - 正则表达式的高级特性。 - 分组和捕获。 - 示例代码展示如何使用正则表达式的高级特性进行匹配。 #### Python第58课:正则表达式(4) - **知识点**: - ...

    Python从入门到精通

    Python还提供了很多有用的模块和库,例如re模块提供了正则表达式匹配函数,例如match()、search()等;os模块提供了操作系统相关的函数,例如listdir()、mkdir()等;sys模块提供了系统相关的函数,例如argv()、exit...

    python入门笔记(强烈推荐).7z

    同时,了解正则表达式可以帮助你进行复杂的数据匹配和处理。 在数据处理方面,Python有强大的库如Pandas和Numpy。Pandas提供了DataFrame和Series数据结构,方便进行数据清洗、转换和分析;Numpy则支持高效的数值...

    a byte of pyton(python简明教程 3.0版本)

    《Python简明教程 3.0版本》是针对初学者精心编写的Python编程入门资料,旨在帮助新手快速掌握这门强大且广泛使用的编程语言。Python 3.0是Python语言的一个重要版本,它引入了许多改进和新特性,使得代码更加简洁、...

    Python基础手册.pdf

    正则表达式是文本处理中不可或缺的工具,手册通过多个章节详细介绍了正则表达式的概念、元字符、字符类、分组、反义、后向引用、零宽断言以及贪婪与懒惰匹配等概念,并提供了30分钟入门教程,帮助读者快速掌握正则...

    Python3入门破冰+爬虫.zip

    4. **正则表达式**: 在爬虫中,正则表达式常用来匹配和提取特定模式的文本。 5. **网页解析**: 除了BeautifulSoup,还可以使用lxml库进行更高效的XML和HTML解析。 6. **网络爬虫框架**: 如Scrapy,它提供了更高级...

    B站黑马程序员Python教程学习笔记.zip

    2. **正则表达式**:理解正则表达式的基本语法,用于高效地处理和匹配字符串。 3. **异常处理**:深入理解Python的异常体系,学会编写健壮的代码来处理各种运行时错误。 4. **标准库使用**:如os模块用于操作系统...

    python免费视频教程(初高中级)+基础教程.docx

    - **知识点介绍**:快速入门正则表达式的使用方法。 - **实操要点**:通过实际案例快速掌握正则表达式的基本用法。 以上是基于给定文档信息整理的知识点概述,通过这些内容的学习,初学者可以系统地掌握Python的...

    Python入门基础项目.pdf

    ### Python入门基础项目知识点 #### 1. Python基础语法和编程入门 从提供的内容来看,首先介绍了Python语言的基础语法和编程入门。Python作为一种高级编程语言,以其简洁易读和丰富的库支持,成为初学者的首选。...

    python入门程序集合

    `lesson_02_string.py`涵盖了字符串处理,包括格式化输出、正则表达式匹配等,这些都是Python日常开发中频繁使用的功能。 `n_queens.py`可能是著名的八皇后问题的实现,它展示了回溯算法的应用,这对于理解和解决...

    Python基础教程(crossin全60课)

    - 使用`try-except`结构捕获并处理异常; - 自定义异常的抛出与捕获。 - **【Python第37课】字典** - **主要内容**:讲解Python中的字典数据类型。 - **知识点**: - 字典的创建与访问; - 字典的增删改查...

    python学习笔记与简明教程.docx

    ### Python学习笔记与简明教程知识点汇总 #### Python 第1课:安装 - **知识点**: - Python 安装包的选择(官方...这不仅有助于初学者快速入门,也能帮助有一定基础的学习者深入理解和掌握Python语言的核心知识。

    超完整 Python基础入门知识教程/开发基础知识能力集全部课件.zip

    5. **Python标准库和第三方库**:Python的标准库非常丰富,如os、sys、time等用于系统操作,random用于生成随机数,re用于正则表达式等。此外,还有大量第三方库,如BeautifulSoup和Scrapy用于爬虫,Matplotlib和...

    Python基础教程(全60课)

    - **正则表达式30分钟入门教程**:提供一个快速入门的指南,帮助学习者快速掌握正则表达式的基本用法。 - **Why Python?**:解释为什么选择Python作为编程入门语言的理由,包括语言的易用性、丰富的库支持等方面。 ...

Global site tag (gtag.js) - Google Analytics