zoukankan      html  css  js  c++  java
  • day20 模块

    上节回顾:

    正则

    新知识:

    1、finall的优先级查询

      ()优先     v     ?:取消括号的定义         ?P<web_name> 正则的分组命名

    import re
    ret=re.findall("www.(baidu|oldboy).com","www.oldboy.com")
    print(ret)     
    #['oldboy']     
    ret1=re.findall("www.(?:baidu|oldboy).com","www.oldboy.com")
    print(ret1)
    # ['www.oldboy.com']
    #findall会优先把匹配结果阻力内容返回,如果想要匹配结果取消权限即可
    优先级例子
    import re
    ret=re.findall(r"www.baidu.com|www.oldboy.com",r"www.oldboy.com")
    ret1=re.findall(r"www.(baidu|oldboy).com",r"www.oldboy.com") #findall取组内
    ret2=re.findall("www.(?:baidu|oldboy).com","www.oldboy.com") #findall取组内所有匹配
    print(ret)
    print(ret1)
    print(ret2)
    # ['www.oldboy.com']
    # ['oldboy']
    # ['www.oldboy.com']
    ret3=re.search(r"www.(?P<web_name>baidu|oldboy).com",r"www.oldboy.com").group("web_name")
    ret4=re.search(r"www.(?P<web_name>baidu|oldboy).com",r"www.oldboy.com").group()
    print(ret3)     #search取组内
    print(ret4)     #search取组内所有匹配
    # oldboy
    # www.oldboy.com
    findall 和search的比较

    2、split的优先级查询

    import re
    ret=re.split("d+","ev3qw213safsa4yuan")
    print(ret)
    # ['ev', 'qw', 'safsa', 'yuan']
    ret1=re.split("(d+)","ev3qw213safsa4yuan")
    print(ret1)
    # ['ev', '3', 'qw', '213', 'safsa', '4', 'yuan']
    # 在匹配部分加上()之后所切出的结果是不同的
    # 没有()的没有保留所匹配的项,但是有()的却能够保留了匹配的项
    # 这个在某些需要保留匹配部分的使用过程非常重要
    split的优先级

    3、分组的命名和组的引用

    第一种方法:分组命名然后引用

    分组命名和引用

    第二种方法直接引用:(比较抽象,不常用)

    (如果不给组起名字,也可以用序号来找到对应的组,表示要找到的内容和前面的组内容一致

    获取的匹配结果也可以用group(序号)拿到对应的值

    import re
    ret=re.search(r"<(w+)>w+</1>","<h1>hello</h1>")
    print(ret.group())   #<h1>hello</h1>
    print(ret.group(1))    #h1
    用序号引用

    例子 :爬虫的例子

    模块:时间模块

    1、和时间有关系的我们就要用到时间模块,在使用模块之前,首先要导入这个模块

      (1)time.sleep(secs)

                   (线程)推迟指定的运行时间,单位为秒

      (2)time.time()

            获取当前时间戳

    2、表示时间的三种方式

      在python中,通常有这三种方式表示时间:时间戳(timestamp)、元组(struct_time)、格式化的时间字符串(Format String);

      (1)时间戳:通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量,我们运行“type(time.time())”返回的是float类型

      (2)格式化的时间字符串:1999_12_06

    %y 两位数的年份表示(00-99%Y 四位数的年份表示(000-9999%m 月份(01-12%d 月内中的一天(0-31%H 24小时制小时数(0-23%I 12小时制小时数(01-12%M 分钟数(00=59%S 秒(00-59%a 本地简化星期名称
    %A 本地完整星期名称
    %b 本地简化的月份名称
    %B 本地完整的月份名称
    %c 本地相应的日期表示和时间表示
    %j 年内的一天(001-366%p 本地A.M.或P.M.的等价符
    %U 一年中的星期数(00-53)星期天为星期的开始
    %w 星期(0-6),星期天为星期的开始
    %W 一年中的星期数(00-53)星期一为星期的开始
    %x 本地相应的日期表示
    %X 本地相应的时间表示
    %Z 当前时区的名称
    %% %号本身
    格式化时间的字符和符号

    3、例子:首先我们导入time模块,来认识一下python中表示时间的几种格式

    (1)计算机唯一表示一个时间点的时间

    时间戳
    (2)能够识别的时间
    时间字符串
    (3)用来计算 使用
    import time
    l_time=time.localtime()
    time.struct_time(tm_year=2017, tm_mon=12, tm_mday=13, tm_hour=9,
                     tm_min=33, tm_sec=17, tm_wday=2, tm_yday=347, tm_isdst=0)
    print(l_time)
    时间元组:localtime将时间戳转换为当前时区的struct_time

    小结:时间戳是计算机能够识别的时间;时间字符串是人能够看懂的时间;元组是用来操作时间的

     2、本地时间和伦敦时间(相差八个小时)

    import time
    print(time.localtime()) #本地时间
    print(time.gmtime())   #伦敦时间

    3、时间格式之间的相互转换

      (1)格式化时间转成时间戳

    import time
    print(time.strptime("2017-12-13","%Y-%m-%d"))
    # time.struct_time(tm_year=2017, tm_mon=12, tm_mday=13, tm_hour=0, 
                     # tm_min=0, tm_sec=0, tm_wday=2, tm_yday=347, tm_isdst=-1)
    print(time.mktime(time.strptime("2017-12-13","%Y-%m-%d")))
    # 1513094400.0
    格式化-时间戳

    (2)时间戳转换成结构化时间

    import time
    print(time.localtime(1500000000))  #本地时间
    # time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=10, 
    #                  tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0)
    print(time.gmtime(1500000000))    #转成伦敦时间
    # time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=2, 
    #                  tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0)
    时间戳-结构化时间

         结构化时间转成时间戳

    import time
    time_tuple=time.localtime(1500000000)
    print(time.mktime(time_tuple))
    # 1500000000.0
    结构化时间-时间戳

    (3)结构化时间转成格式化时间(字符串格式)

    import time
    print(time.strftime("%X"))
    # 10:19:34
    print(time.strftime("%Y-%m-%d",time.localtime(1500000000)))
    # 2017-07-14
    结构化-格式化

        格式化转换成结构化时间

    import time
    print(time.strptime("2017-08-09","%Y-%m-%d"))
    # time.struct_time(tm_year=2017, tm_mon=8, tm_mday=9, tm_hour=0, 
                     # tm_min=0, tm_sec=0, tm_wday=2, tm_yday=221, tm_isdst=-1)
    格式化-结构化

    4、不常用

    import time
    print(time.asctime())
    # Wed Dec 13 10:26:56 2017
    print(time.asctime(time.localtime(1000000000)))
    # Sun Sep  9 09:46:40 2001   #结构化时间
    print(time.ctime(1000000000))
    # Sun Sep  9 09:46:40 2001  #时间戳时间
    格式化时间的转换
    例子:
    import time
    true_time=time.mktime(time.strptime('2017-09-11 08:30:00','%Y-%m-%d %H:%M:%S'))
    time_now=time.mktime(time.strptime('2017-09-12 11:00:00','%Y-%m-%d %H:%M:%S'))
    dif_time=time_now-true_time
    struct_time=time.gmtime(dif_time)
    print('过去了%d年%d月%d天%d小时%d分钟%d秒'%(struct_time.tm_year-1970,struct_time.tm_mon-1,
                                           struct_time.tm_mday-1,struct_time.tm_hour,
                                           struct_time.tm_min,struct_time.tm_sec))
    # 过去了0年0月1天2小时30分钟0秒
    计算时间差

    模块:sys模块

     1、sys模块是与python解释器交互的一个接口

    # sys.argv  命令行参数List,第一个元素是程序本身路径
    #sys.exit   退出程序,正常退出时exit(0),错误退出sys.exit(1)
    #sys,version 获取Python解释程序的版本信息
    #sys.path   返回模块的搜索路径,初始化时使用pythonpath环境变量的值
    #sys.platform 返回操作系统平台名称

     对上面的分析

    print(sys.platform)   #win32
    print(sys.version)
    # 3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)]
    sys.exit(0)
    sys.exit(1)
    print("nihao")  #空白已经退出
    print(sys.path)
    #模块导入的时候从这个列表中的路径依次去寻找模块,找到就停止
    # sys.path 的第一个元素是当前被执行的python文件所在的地址
    # 之后的地址依次是python内部的事

    2、argv 执行脚本的时候使用

     sys.argv的第一个值是固定的,是这个文件的名字  

     之后的参数是在控制台执行py文件的时候传入的参数。(python 文件名字 传入的参数)

     我们可以用这写参数来直接完成一些校验类的工作

    import sys
    print(sys.argv)
    args_lst=sys.argv
    if len(args_lst)==3 and args_lst[1]=="alex" and args_lst[2]=="3714":
        print("执行程序了")
    else:
        sys.exit()

     3、collections模块

    链接:http://www.cnblogs.com/Eva-J/articles/7228075.html#_label15

     

  • 相关阅读:
    【技术分享】sphinx的--rotate运行机制
    【技术分享】JQuery Mobile转场分析
    【游戏小心得】火焰纹章的核心精髓
    【新手向】键盘常用 ASCII 码
    【基础知识】进程与线程的区别
    【巧知识】js ==与===区别(两个等号与三个等号)
    python: HTML之 鼠标放上去下拉项字体显示不同颜色
    python:页面布局 后台管理页面之常用布局
    python :页面布局 ,后台管理页面之左侧菜单跟着滚动条动
    python : HTML+CSS (左侧菜单)
  • 原文地址:https://www.cnblogs.com/number1994/p/8030120.html
Copyright © 2011-2022 走看看