zoukankan      html  css  js  c++  java
  • 我的Python分析成长之路6

    模块:本质就是.py结尾的文件。从逻辑上组织python代码。

    包: 本质就是一个目录,带有__init__.py文件,从逻辑上组织模块

    模块的分类:

          1.标准库(内置的模块)

          2.开源库(第三方库)

          3.自定义模块

    模块导入方法:

        1.import + 模块名   

        2.from......import......

        导入模块的本质,就是把被导入的.py文件解释执行一遍 

        导入包的本质,就是把__init__.py文件解释执行一遍。

    1.时间模块(time与datetime)

        1.timestamp(时间戳) 2.format_time(字符串时间)  3.struct_time(结构化时间)

        

     1 import time
     2 print(time.asctime())  #接受一个元组转化为固定形式的字符串时间Thu Jan 10 18:33:34 2019
     3 print(time.altzone)  #计算与utc时间相差的秒数  
     4 print(time.ctime()) #接受一个时间戳,转化为固定形式的字符串时间Thu Jan 10 18:33:34 2019
     5 print(time.gmtime())  #将时间戳形式时间转化为结构化时间 utc时间
     6 print(time.localtime()) #将时间戳形式时间转化为结构化时间 当地时间
     7 print(time.mktime())  #将结构化时间转化为时间戳形式时间
     8 print(time.strftime("%Y-%m-%d %H:%M:%S","结构化时间"))#将结构化时间转化为字符串时间 
     9 print(time.strptime("2016-12-10 10:12:13","%Y-%m-%d %H:%M:%S"))#将字符串时间转化为结构化时间
    10 print(time.sleep())  #延长时间
       时间的转化
    

       

       

    1 import datetime
    2 import time
    3 print(datetime.datetime.now())  #现在的时间 固定格式
    4 print(datetime.date.fromtimestamp(time.time()))  #把时间戳转化为 2019-1-10
    5 print(datetime.datetime.now()+datetime.timedelta(hours=+3))#当前时间加3小时,
    6 print(datetime.datetime.now()+datetime.timedelta(days=-3))#当前时间减3天
    7 print(datetime.datetime.now().replace(month=2,day=3))  #时间替换

    2.随机模块(random)

      

     1 import random
     2 print(random.choice([1,2,3])) #列表中随机选择一个数
     3 print(random.random())  #(0,1)随机浮点数
     4 print(random.randint(1,3)) #[1,3]之间的随机整数
     5 print(random.randrange(1,3) #(1,3)之间随机整数
     6 print(random.seed(20))  #产生随机种子
     7 print(random.sample(range(10),3))   #从(0,9)之间随机抽取3个数
     8 l = [1,2,3]
     9 random.shuffle(l)    #随机打乱
    10 print(l)
    11 print(random.uniform(1,3))  #(1,3)之间随机浮点数
     1 #随机生成验证码
     2 import random
     3 def check_code(num):
     4     codes = ""
     5     for i in range(num):
     6         number = random.randint(0,9)
     7         alpha = chr(random.randint(97,122))
     8         code = random.choice([number,alpha])
     9         codes += str(code)
    10     return codes
    11 l = check_code(5)
    12 print(l)
    1 import sys
    2 print(sys.path)  #返回当前模块的搜索路径
    3 print(sys.argv)  #命令行参数 ,第一个参数为文件本身路径
    4 # sys.exit()  #退出程序,正常退出exit()
    5 print(sys.platform)   #返回操作平台名称
    6 print(sys.version)  #返回Python 版本

     2.os模块

        

     1 import os
     2 print(os.getcwd())  #当前文件目录
     3 os.mkdir("11")  #创建11目录
     4 os.makedirs("11/22" )  #创建多级目录
     5 print(os.listdir("G:EchizenPycharmProjectsonelearn3"))  #列表形式列出该目录下的所有文件或子目录
     6 os.rename("11/22",'11/33')    #目录重命名
     7 os.removedirs("11/33")   #删除多级目录
     8 print(os.stat("G:EchizenPycharmProjectsonelearn3day1.py"))  #获取文件目录信息
     9 print(os.environ)  #获得文件环境
    10 print(os.path.abspath("G:EchizenPycharmProjectsonelearn3day1.py"))  #获取文件绝对路径
    11 print(os.path.split("G:EchizenPycharmProjectsonelearn3day1.py")) #将路径分割成目录和文件,以元组返回
    12 print(os.path.dirname("G:EchizenPycharmProjectsonelearn3day1.py"))#获得路径目录名,即split分割后的第一个
    13 print(os.path.basename("G:EchizenPycharmProjectsonelearn3day1.py"))#获得路径文件,即split后的第二个
    14 print(os.path.exists("G:EchizenPycharmProjectsonelearn3day1.py")) #判断是否存在该文件
    15 print(os.path.isabs("G:EchizenPycharmProjectsonelearn3day1.py")) #判断是否为绝对路径
    16 print(os.path.isfile("G:EchizenPycharmProjectsonelearn3day1.py")) #判断是否是一个文件
    17 print(os.path.isdir("G:EchizenPycharmProjectsonelearn3"))#判断是否为一个目录
    18 print(os.path.join("G:EchizenPycharmProjectsonelearn3","day3")) #连接
    19 print(os.path.getatime("G:EchizenPycharmProjectsonelearn3day2.py")) #获得文件或目录最后存储时间
    20 print(os.path.getmtime("G:EchizenPycharmProjectsonelearn3day2.py")
    #不同包之间的导入操作
    import sys,os
    print(sys.path)
    x = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
    sys.path.append(x)
    print(sys.path)
    import ML
    View Code

     3.re模块

      

      '.'     默认匹配除 之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行
      '^'     匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r"^a"," abc eee",flags=re.MULTILINE)
      '$'     匹配字符结尾,或e.search("foo$","bfoo sdfsf",flags=re.MULTILINE).group()也可以
      '*'     匹配*号前的字符0次或多次,re.findall("ab*","cabb3abcbbac")  结果为['abb', 'ab', 'a']
      '+'     匹配前一个字符1次或多次,re.findall("ab+","ab+cd+abb+bba") 结果['ab', 'abb']
      '?'     匹配前一个字符1次或0
      '{m}'   匹配前一个字符m次
      '{n,m}' 匹配前一个字符n到m次,re.findall("ab{1,3}","abb abc abbcbbb") 结果'abb', 'ab', 'abb']
      '|'     匹配|左或|右的字符,re.search("abc|ABC","ABCBabcCD").group() 结果'ABC'
      '(...)' 分组匹配,re.search("(abc){2}a(123|456)c", "abcabca456c").group() 结果 abcabca456c
     
     
      'A'    只从字符开头匹配,re.search("Aabc","alexabc") 是匹配不到的
      ''    匹配字符结尾,同$
      'd'    匹配数字0-9
      'D'    匹配非数字
      'w'    匹配[A-Za-z0-9]
      'W'    匹配非[A-Za-z0-9]
      's'     匹配空白字符、 、 、 , re.search("s+","ab c1 3").group() 结果 ' '
      re.match 从头开始匹配
      re.search 匹配包含
      re.findall 把所有匹配到的字符放到以列表中的元素返回
      re.splitall 以匹配到的字符当做列表分隔符
      re.sub      匹配字符并替换

      

    print(re.search("(?P<name>[a-z]{3})(?P<age>[0-9]{2})(?P<sex>[a-z]{3})","zqq24boy"))
    View Code

        

  • 相关阅读:
    Nginx如何配置Http、Https、WS、WSS?
    关于MySQL日志,我与阿里P9都聊了些啥?
    一文搞懂MySQL体系架构!!
    在业务高峰期拔掉服务器电源是一种怎样的体验?
    千万不要轻易尝试“熊猫烧香”,这不,我后悔了!
    从小白程序员到大厂高级技术专家我看过哪些书籍?
    聊一聊我在 B 站自学 Java 的经历吧
    计算机网络的 89 个核心概念
    MQTT 协议是个啥?这篇文章告诉你!
    1.5w字 + 24张图肝翻 TCP。
  • 原文地址:https://www.cnblogs.com/Ezhizen/p/10252696.html
Copyright © 2011-2022 走看看