SQLMAP coldfusion mono vue的钩子函数 vue添加class vue实现原理 jquery去掉空格 js获取焦点事件 hadoop特点 python3教程 python文件写入 java删除数组元素 java的数据类型 java写文件 java集合遍历 java时间戳转换 linux系统安装教程图解 网络适配器驱动 脚本之家官网 选择模拟位置信息应用 编辑软件 flash基础 快打旋风3出招表 魔兽改图工具 git命令 工信部手机入网查询 python数组赋值 cf小号 js刷新当前页面 0000008e lol无法连接服务器 mysql游标 机械换装 sai怎么复制图层 人物建模教程 vue数组更新 wps宏的使用教程 ai复制快捷键 天天手游模拟器 文字方向怎么设置
当前位置: 首页 > 学习教程  > 编程语言

python基础篇之实用库

2021/1/28 23:58:28 文章标签:

Python 的实用离不开其强大的库或框架的支持,像正则表达式,文件模块,命令行模块, Django 框架, sk-learning 工具箱等.这些都让 Python 能够非常方便的处理不同领域的问题。 正则表达式 初学 Python,对 Python 的文字处理能力有很深的印象&…

Python 的实用离不开其强大的库或框架的支持,像正则表达式,文件模块,命令行模块, Django 框架, sk-learning 工具箱等.这些都让 Python 能够非常方便的处理不同领域的问题。

正则表达式

初学 Python,对 Python 的文字处理能力有很深的印象,除了 str 对象自带的一些方法外,就是正则表达式这个强大的模块了。关于 Python 里面正则表达式的使用网上有很多博文,如 Python正则式学习笔记等,这里做一下自己的总结.

基本使用

  • match 方法

    import re
    
    str = 'an example word:cat!!'
    match = re.search(r'word:\w\w\w', str)
    
    # If语句紧跟来检验search()是否成功
    if match:                      
          print 'found', match.group()  ## 找到cat
    else:
          print 'did not find'
    
  • findall 方法

    import re
    
    # 在字符串中查找
    str = 'purple alice@google.com, blah monkey bob@abc.com blah dishwasher'
    
    # 找出str中所有的正规的邮箱
    emails = re.findall(r'[\w\.-]+@[\w\.-]+', str) ## ['alice@google.com', 'bob@abc.com']
    for email in emails:
        print email
    
    # 在文件中查找
    f = open'test.txt','r')
    strings = re.findall(r'pattern',f.read())
    

基本模式

  • 普通字符 a-z,A-Z,0-9
  • . 匹配任何一个单字符,除了换行符\n
  • \w 匹配字母/数字/下划线,等价于 [a-zA-Z0-9] ,\W\w互为补集
  • \b 匹配词和非词的分隔界限
  • \s 匹配单个空格字符,等价于 [ \n\r\t\f\v]. \S\s 互为补集
  • \t\n\r 匹配制表符,换行符,回车符
  • \d 匹配数字,等价于 [0-9]
  • ^ $ ^ 匹配开头, $ 匹配结尾

重复模式

  • + 匹配至少有一个和左边相同的字符构成的串.eg i+ 匹配 i/ii/iii 等

  • * 匹配 0 个或多个和左边相同的字符构成的串.eg i* 匹配 /i/ii/iii 等

  • ? 匹配 0 个或一个和左边相同的字符.eg i?匹配 /i

    注意:
    +*都是尽可能多的匹配字符串

特殊符号

  • [] 代表单个字符,这个字符是属于[]中的元素
  • () () 中匹配的字符串构成的一个 group,可以通过 match.group(i) 提取第 i 个组合

课后习题

  • 练习题: babynames.py baby2006.html

文件模块

  • 模块支持

    import os
    import shutil
    
  • 常用函数

    # 获取文件列表
    filenames = os.listdir(dir)
    
    # 拼接文件路径
    os.path.join(dir,filename)
    
    # 获取绝对路径
    os.path.abspath(path)
    
    # 从完整路径中获取目录和文件名
    os.path.dirname(path)
    os.path.basename(path)
    
    # 判断完整路径是否存在
    os.path.exists(path)
    
    # 创建目录
    os.mkdir(dir_path)
    # 创建路径上的所有文件夹
    os.makedirs(dir_path)   
    
    # 拷贝文件
    shutil.copy(src,dest)
    

命令行模块

  • 模块支持

    import commands
    
  • 常用函数

    # 运行命令,等待结束。返回状态(正常返回是0)和结果。
    (status, output) = commands.getstatusoutput(cmd)
    
    # 不返回状态的执行命令
    output = commands.getoutput(cmd)
    
    # 不关心结果,只要执行即可
    os.system(cmd)
    
  • 样例代码

    # 给定一个dir路径,运行 'ls -l'
    def listdir(dir):
        cmd = 'ls -l ' + dir
        print "Command to run:", cmd   ## 易于调试
        (status, output) = commands.getstatusoutput(cmd)
        if status:    ## 错误情况,打印错误信息并退出
            sys.stderr.write(output)
            sys.exit(1)
        print output  ## 否则显示输出结果
    

异常处理

  • 样例代码

    try:
        # 打开文件或读取文件出现问题将抛出 IOError 异常.
        f = open(filename, 'rU')
            text = f.read()
            f.close()
    except IOError:
        # 处理 IOError 异常.
        sys.stderr.write('problem reading:' + filename)
    # try/except后面的代码将继续执行
    

网络模块

  • 模块支持

    import urllib
    
  • 常用函数

    # 返回一个文件
    ufile = urllib.urlopen(url)
    
    # 读取文件信息
    text = ufile.read()
    
    # 获取网络文件meta/type 信息
    info = ufile.info()
    type = info.gettype()
    
    # 获取最初始的url(针对重定向)
    baseurl = ufile.geturl()
    
    # 下载url数据到指定的文件
    urllib.urlretrieve(url,filename)
    
    # 获取完整url
    urlparse.urljoin(baseurl,url)
    
  • 样例代码

    ## 用try/except处理网络异常
    def wget(url):
        try:
            ufile = urllib.urlopen(url)
            if ufile.info().gettype() == 'text/html':
                print ufile.read()
        except IOError:
            print 'problem reading url:', url
    
    wget('http://www.baidu.com')  # 一定要加http://
    

课后练习

  • 练习题1: copyspecial.py
  • 练习题2: logpuzzle.py

如果该文章对您产生了帮助,或者您对技术文章感兴趣,可以关注微信公众号: 技术茶话会, 能够第一时间收到相关的技术文章,谢谢!

技术茶话会

本篇文章由一文多发平台ArtiPub自动发布


本文链接: http://www.dtmao.cc/news_show_650349.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?