zoukankan      html  css  js  c++  java
  • sys,os,模块-正则表达式

    # *__conding:utf-8__*


    """"
    我是注释
    """

    sys,os模块

    import sys
    import os

    print(__file__)                                             当前文件的路径
    print(os.path.abspath(__file__))                    当前文件的绝对路径
    print(sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))            当前文件的上上级目录

    import han

    from lib import abc

    print(vars(han))                                              查看模块提供了哪些变量
    print(__doc__)                                               查看文件开头的注释
    print(abc.__package__)                                   查看模块在那个文件夹下面


    只有执行当前文件时候,当前文件的他叔变量 __name__ == '__main__'
    __name__ == __main__

    模块

    logining
    time/datetime
    json/pickile
    requests


    补充的模块中特殊变量

    __doc__
    __pakage__
    __acahed__
    __name__
    __file__

    程序滚动条

    import time

    def view_bar (num,total):
    rate = num / total                       相除
    rate_num = int(rate * 100)          相乘
    r = ' %d%%' %(rate_num)
    sys.stdout.write(r)                      去掉换行
    sys.stdout.flush()                       在原地去除


    if __name__ == '__main__':
    for i in range(0,101):                 循环0-101
    time.sleep(0.1)                         暂停0.1秒
    view_bar(i,100)                        传给函数

    程序滚动条2

    def view_bar (num,total):
    rate = num / total
    rate_num = int(rate * 100)
    r = ' %s>%d%%' %('-'*num,rate_num)
    sys.stdout.write(r)
    sys.stdout.flush()

    if __name__ == '__main__':
    for i in range(0,101):
    time.sleep(0.1)
    view_bar(i,100)

    sys模块

    sys.argv                                   获取本地路径
    sys.exit()                                 退出程序 正常退出exit(0)
    sys.version                               获取python解释程序的版本信息
    sys.maxint                               最大int值
    sys.path                                  返回模块的搜索路径,初始化使用pythin环境变量的值
    sys.platfrom                             返回操作系统平台名称

    os模块

    os.path.abspath(path)                  返回绝对路径
    os.path.split(path)                       将path分割成目录和文件名二元组返回
    os.path.dirname(path)                  返回上一级目录
    os.path.join(path1[,path2[,...]])     将多个路径组合返回,第一个绝对路径之前的参数忽略

    加密

    import hashlib
    obj = hashlib.md5(bytes('hghghghjjhjhjhjjj',encoding='utf-8'))
    obj.update(bytes('123',encoding='utf-8'))
    result = obj.hexdigest()
    print(result)


    正则表达式

    fandall

    import re
    a=re.findall('alex','alexdfgdfgdfgdfgdfgdfg')
    b=re.findall('al.*x','alexdfgdfgdfgdfgdfgdfg')
    c=re.findall('al.+x','alexdfgdfgdfgdfgdfgdfg')
    d=re.findall('al.?x','alexdfgdfgdfgdfgdfgdfg')
    e=re.findall('al.{1,5}x','alexdfgdfgdfgdfgdfgdfg')
    f=re.findall('al.[bc]x','albcxdfgdfgdfgdfgdfgdfg')
    g=re.findall('al.[a-z]x','albcxdfgdfgdfgdfgdfgdfg')
    h=re.findall('a[a-z]+d','agbd')
    i=re.findall('a[a*]d','a*d')
    j=re.findall('a[^f]d','a*d')
    k=re.findall('a[d]d','a2d')

    ? 零个或多个
    + 1个或多个
    {1,5} 1个或5个
    [a-z] a到z的字母
    d 匹配任何十进制数:等于[0-9]
    D 匹配任何非数字:等于[^0-9]
    s 匹配任何空白字符:等于[ fv]
    S 匹配任何非空白字符:等于[^ fv]
    w 匹配任何字母数字:等于 [z-aA-Z0-9]
    W 匹配任何非字母数字:等于 [^z-aA-Z0-9]
     匹配单词和空格间的位置
    aa=re.findall(r'I','I an hanIsome')


    特殊意义在[]中不生效如下

    i=re.findall('a[a*]d','a*d')

    match

    注意:match只匹配第一个

    bb=re.match('com','comwwww.runcomoob')      匹配com
    print(bb)
    print(bb.span())

    search

    注意:匹配所有
    cc=re.match('com','comwwww.runcomoob')         匹配com
    print(cc)
    print(cc.span())

    匹配特殊 需要加r 2个\代表一个

    ww=re.search(r'\','www.runcomoob')

    sub 替换

    dd=re.sub('com','COM','comwwww.runcomoob')
    print(dd)


    subn替换

    注意:显示替换了几个

    ee=re.subn('com','COM','comwwww.runcomoob')
    print(ee)

    compile 查找

    查找oo
    test= "asdasdasdasdooasdasdasd"
    regex = re.compile(r'w*oow*')
    print(regex.findall(test))

    正则表达式分组

    import re

    origin = "hasaabc dfoujqwi halaabc m098u29841"
    r = re.match('hw+',origin)

    分组

    ff = re.match('h(w)+',origin)

    分组别名

    ff = re.match('h(?P<name>w)+',origin)
    print(ff.group())                          获取匹配的所有结果
    print(ff.groups())                        获取匹配的分组结果
    print(ff.groupdict())                    获取匹配的分组别名


    分组2

    fff = re.findall ('h(w+)a(ab)c',origin)

    split 分割

    从第一个开始分割
    origin1='hello alex bcd alex lge alex acd 19'
    r1 = re.split('a(le)x',origin1, 1)
    print(r1)

  • 相关阅读:
    内存映射的原理
    Intel 面试(就不该报外企,英语是硬伤)
    基于多进程和基于多线程服务器的优缺点及nginx服务器的启动过程
    pdflush机制
    百度面试
    同步IO和异步IO的区别
    阿里面试
    linux内核学习之四:进程切换简述
    static成员函数不能调用non-static成员函数
    C/C++函数调用方式
  • 原文地址:https://www.cnblogs.com/hanwei999/p/6242951.html
Copyright © 2011-2022 走看看