10-常用模块

常用模块

time

  • sleep:休眠指定的秒数(可以是小数)

  • time:获取时间戳

    
    # 获取时间戳(从1970-01-01 00:00:00到此刻的秒数)
    
    t = time.time()
    print(t)
  • localtime:将时间戳转换为对象

    
    # 将一个时间戳转换为日期时间(time.struct_time)对象
    
    local_time = time.localtime()
    
    # print(local_time)
    
    
    # print(local_time.tm_year)
    
    
    # print(local_time[0])
    
  • mktime:根据年月日等信息转换为时间戳

    
    # 根据年月日时分秒等转换为时间戳
    
    new_time = time.mktime((2018, 7, 31, 10, 37, 38, 1, 212, 0))
    print(new_time)
  • gmtime:功能同localtime

    
    # 将时间戳转换time.struct_time,不包含时区
    
    gt = time.gmtime()
    
    # print(gt)
    
  • timezone:时差

    
    # 0时区与当前时区相差的秒数
    
    print(time.timezone)
  • strftime:将time.struct_time对象格式化显示

    
    # 格式化显示
    
    
    # print(time.strftime('%Y-%m-%d %H:%M:%S', local_time))
    
    print(time.strftime('%D', local_time))
    '''
    %Y:年(4位)
    %y:年(2位)
    %m:月
    %d:日
    %D:月/日/年
    %H:时
    %M:分
    %S:秒
    %w:星期(1~7)
    %W:本周是今年的第几周
    '''
    
    # 特定的显示格式
    
    print(time.asctime())

calendar

  • 使用

    import calendar
    
    
    # 返回一年的日历
    
    c = calendar.calendar(2018, w=2, l=2, c=2, m=2)
    
    # print(c)
    
    
    
    # 返回某年的的某月的日历
    
    m = calendar.month(2018, 7)
    
    # print(m)
    
    
    
    # 闰年判断
    
    print(calendar.isleap(2008))
    
    
    # 两个年份之间的闰年数量,区间:[起始,结束)
    
    print(calendar.leapdays(2000, 2008))
    print(calendar.leapdays(2000, 2009))

datetime

  • date

    from datetime import date
    import time
    
    
    # 创建对象
    
    d1 = date(2018, 7, 31)
    
    # print(d1)
    
    
    d2 = date.today()
    
    # print(d2)
    
    
    d3 = date.fromtimestamp(time.time())
    
    # print(d3)
    
    
    
    # 标准格式
    
    print(d1.isoformat())
    
    
    # 日历显示,格式:(年,日,星期)
    
    print(d2.isocalendar())
    
    
    # 获取星期,标准格式1~7
    
    print(d2.isoweekday())
    
    # 获取星期,格式0~6
    
    print(d2.weekday())
    
    
    # 格式化显示
    
    print(d3.strftime('%Y/%m/%d'))
    
    
    # 转换为包含详细信息的对象(time.struct_time)
    
    print(d3.timetuple())
  • time

    from datetime import time
    
    
    # 创建对象
    
    t = time(1, 2, 3)
    print(t)
    
    
    # 单独获取
    
    print(t.hour)
    print(t.minute)
    print(t.second)
    
    
    # 格式化显示
    
    print(t.strftime('%H::%M::%S'))
  • datetime

    from datetime import datetime
    import time
    
    
    # 创建对象
    
    dt = datetime(2018, 7, 31, 14, 21, 22)
    
    # print(dt)
    
    
    # print(type(dt))
    
    
    
    # 本地当前时间,带时区
    
    dt2 = datetime.now()
    
    # print(dt2)
    
    
    
    # 0时区时间,不带时区
    
    dt3 = datetime.utcnow()
    
    # print(dt3)
    
    
    
    # 根据时间戳转换
    
    dt4 = datetime.fromtimestamp(time.time())
    
    # print(dt4)
    
    
    
    # 提取日期
    
    d = dt.date()
    print(d)
    print(type(d))
    
    
    # 提起时间
    
    t = dt.time()
    print(t)
    print(type(t))
    
    
    # 转换为时间戳
    
    print(dt.timestamp())
    
    
    # 格式化显示
    
    print(dt.strftime('%Y/%m/%d %H/%M/%S'))
  • timedelta

    from datetime import datetime, timedelta
    
    d1 = datetime(2018, 7, 31, 14, 31, 32)
    d2 = datetime(2018, 7, 31, 14, 15, 32)
    
    delta = d1 - d2
    print(delta)
    print(type(delta))
    
    
    # delta2 = timedelta(days=1, hours=1)
    
    delta2 = timedelta(seconds=-3600)
    print(delta2)
    
    d3 = d2 + delta2
    print(d3)
    
    
    # 提取天数
    
    print(delta2.days)
    
    
    # 提取除天以外的秒数
    
    print(delta2.seconds)
    
    
    # 总共的秒数
    
    print(delta2.total_seconds())

模块使用

  • 定义:模块就像工具包一样,里面包含函数、类等,使用时倒入即可。

  • 分类:

    • 标准库:random、os、sys、time等
    • 自定义:自己根据需要书写的模块
    • 第三方:就是别人写好的模块,自己可以直接使用,但是需要(pip)进行安装
  • 语法:

    
    # 导入模块
    
    import time
    
    # 导入模块中指定的内容
    
    from time import sleep
    
    
    # 导入模块并起别名,只能使用别名
    
    import random as rdm
    
    # 导入模块的指定内容,并起别名
    
    from random import randint as rint
  • as:

    • 使用as可以起别名,让导入的所需内容简单易记
    • 使用as可以解决多个模块下的标识符冲突问题
  • 模糊导入:

    
    # 模糊导入,会导入该模块下__all__指定的内容
    
    
    # 不建议使用,因为你不知道导入了什么内容
    
    from random import *
  • 自定义模块

    • 新建一个文件(文件名不要与其他模块相同)
    • 新建的文件名(除了后缀)就是模块名
    • 导入模块的方式与官方的一样
    • 模块名(文件名)就是命名空间,同一模块下的标识符不能同名,不同模块下的标识符可以同名
    • 当多个模块下的标识符同名时,可以直接导入模块,也可以导入后起别名
  • 测试模块

    • 每个模块中都有一个变量__name__,表示当前的模块名
    • 但是当前模块作为启动文件时,其值为__main__
    • 通常我们这样写测试代码:
    if __name__ == '__main__':
      print('测试')
  • 包的使用

    • 定义:多个模块放在同一个目录下,这个目录下必须有一个文件__init__.py,这个目录就是一个包
    • 说明:
    • __init__.py文件是一个目录作为包的标志,即使该文件内容为空
    • 导入时可以简化模块导入的复杂度
  • 第三方模块安装

    • 工具:pip
    • 使用:
    pip -h/--help                 # 查看帮助文档
    pip install 包名==版本            # 安装指定的包
    pip install -r 文件             # 安装文件中指定包
    pip uninstall 包名              # 卸载指定的包
    pip list                      # 列表展示已安装的包
    pip show 包名                       # 查看指定的包信息
    pip freeze                        # 冷冻当前的环境
    • 说明:
    • 软件包安装目录:python安装目录\Lib\site-packages
    • 安装失败通常是因为没有权限或断网。

虚拟环境

  • 为什么使用虚拟环境?
    • 在一个环境中不同软件依赖一个包的不同版本,为了进行环境隔离就出现了虚拟环境。
  • 安装工具:virtualenv
    • pip install virtualenv
  • 创建虚拟环境:
    • virtualenv 虚拟环境目录
  • 激活虚拟环境:
    • 运行:虚拟环境目录\Scripts\activate.bat
  • 退出虚拟环境:
    • 运行:虚拟环境目录\Scripts\deactivate.bat
  • 快速复制一个虚拟环境:
    • 冷藏原有的虚拟环境:pip freeze > requeirements.txt
    • 创建一个新的虚拟环境:virtualenv 虚拟环境名
    • 激活虚拟环境:虚拟环境目录\Scripts\activate.bat
    • 安装依赖:pip install -r requirements.txt

猜你喜欢

转载自blog.csdn.net/qq_42795565/article/details/81351733
今日推荐