热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

10常用模块:time,calendar,datetime

#常用模块timesleep:休眠指定的秒数(可以是小数)time:获取时间戳(从1970-01-0100:00:00到此刻的秒数)localtime:将一个时间戳转换为一个对象,

#常用模块


time



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



  • time:获取时间戳(从1970-01-01 00:00:00到此刻的秒数)



  • localtime:将一个时间戳转换为一个对象,对象中包含了所有日期时间信息

    # 将时间戳转换为一个对象(包含年月日等信息)
    # 当不传参数,默认转换当前时间戳
    local_time = time.localtime()
    print(local_time)
    # 通过下表获取
    print(local_time[0])
    # 通过属性名获取
    print(local_time.tm_year)

     



  • mktime:将日期时间信息转换为时间戳

    # 将日期时间信息转换为时间戳
    # new_time = time.mktime(local_time)
    new_time = time.mktime((2018, 6, 20, 10, 32, 10, 2, 171, 0))
    print(new_time)

     



  • strftime:将原则对象格式化显示

    # 格式化显示,可以传递一个类似于元组的对象
    print(time.strftime('%Y-%m-%d %H:%M:%S %w %W', local_time))
    # 不传时间对象,默认转换当前时间
    print(time.strftime('%D'))
    '''
    %Y:年(4位)
    %y:年(2位)
    %m:月
    %d:日
    %D:月/日/年
    %H:时(24)
    %I:时(12)
    %M:分
    %S:秒
    %w:星期(1~7)
    %W:本周是今年的第几周
    '''

     



  • gmtime:将时间戳转换为localtime对象

    # 将时间戳转换为localtime对象
    print(time.gmtime(time.time()))
    # 不传参数默认转换当前时间戳
    print(time.gmtime())

     



  • asctime:将localtime以特定的格式显示

    # 将localtime格式化显示
    print(time.asctime(local_time))
    # 不传参数默认转换当前时间
    print(time.asctime())

     



  • timezone:时区

    # 返回0时区与当前时区相差的秒数
    print(time.timezone)

     




calendar



  • 使用

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

     




datetime



  • date

    from datetime import date
    import time
    # 创建对象
    d1 = date(2018, 6, 20)
    print(d1)
    d2 = date.today()
    print(d2)
    d3 = date.fromtimestamp(time.time())
    print(d3)
    # 转换为标准格式字符串
    s = d1.isoformat()
    print(s)
    # print(type(s))
    # 日历显示:(年,第几周,星期)
    print(d1.isocalendar())
    # 获取星期(1~7)
    print(d1.isoweekday())
    # 获取星期(0~6)
    print(d1.weekday())
    # 格式化
    print(d1.strftime('%Y/%m/%d'))
    # 转换为类似于元组的形式(localtime)
    print(d1.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, 6, 20, 14, 29, 30)
    print(dt)
    # 当前时间,当地带时区的时间
    dt2 = datetime.now()
    print(dt2)
    # 不带时区的时间
    dt3 = datetime.utcnow()
    print(dt3)
    # 将时间戳转换为日期时间
    dt4 = datetime.fromtimestamp(time.time())
    print(dt4)
    # 提取日期
    d = dt.date()
    print(d)
    # print(type(d))
    # 提取时间
    print(dt.time())
    # 转换为时间戳
    print(dt.timestamp())
    # 格式化显示
    print(dt.strftime('%Y/%m/%d %H:%M:%S'))

     



  • timedelta

    from datetime import datetime, timedelta
    d1 = datetime(2018, 6, 19, 10, 11, 12)
    d2 = datetime(2018, 6, 20, 12, 14, 18)
    # 得到时间差对象timedelta
    delta = d2 - d1
    print(delta)
    print(type(delta))
    delta2 = timedelta(days=2, hours=3, minutes=4, secOnds=6)
    print(delta2)
    d3 = d1 + delta2
    print(d3)
    # 天数
    print(delta2.days)
    # 除天以外的秒数
    print(delta2.seconds)
    # 总共的秒数
    print(delta2.total_seconds())

     




模块使用



  • 定义:模块就像工具包一样,里面有很多工具(函数、类等),使用时导入即可



  • 分类:



    • 标准库:random、sys、os、time

    • 第三方:就是别人写好的一些模块,你自己拿来使用(使用pip即可进行安装)

    • 自定义:自己写的



  • 导入:

    import random # 导入
    import random as rdm # 导入后起别名
    from random import randint # 指定导入
    from random import randint as rint # 指定导入后起别名

     


    as说明:

    ​ 使用as起别名后,代码中只能使用别名。

    ​ 可以避免冲突,可写简化书写




  • 模糊导入:

    from random import *

     


    说明:导入random模块中 __ all __ 列表指定的内容,不建议使用(不易跟踪代码)




  • 自定义模块



    • 新建一个文件(不要与其他模块同名)

    • 新建的文件名(除了后缀)就是模块名

    • 导入的方式与官方的相同

    • 文件名(模块名)就是命名空间,不同命名空间下的标识符可以相同

    • 当使用多个模块下的相同标识符时,可以通过且别名或者通过命名空间进行区分



  • 测试模块



    • 每个模块中都有一个变量__name__,它表示当前的模块名

    • 但是当该模块作为主文件启动时其值为'__main__'

    • 通过会通过下面的方式书写测试代码:

    if __name__ == '__main__':
    print('for test')

     



  • 包的使用



    • 定义:多个模块放在一个目录下,这个目录下必须有一个__init__.py文件,那么这个目录就是一个包

    • 说明:

      • __init__.py文件是一个目录称为包的标志,即使内容为空

      • 可以简化使用者对包内容的导入复杂度





  • 第三方模块的使用



    • 安装工具:pip

    • pip使用:

    pip -h/--help # 查看帮助文档
    pip install 包名 # 安装指定软件包
    pip uninstall 包名 # 卸载指定软件包
    pip list # 列表显示所有的安装包
    pip show 包名 # 显示指定包的详情

     



    • 说明:安装失败通常是安装目录没有权限或断网




推荐阅读
  • python中安装并使用redis相关的知识
    本文介绍了在python中安装并使用redis的相关知识,包括redis的数据缓存系统和支持的数据类型,以及在pycharm中安装redis模块和常用的字符串操作。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • 本文介绍了协程的概念和意义,以及使用greenlet、yield、asyncio、async/await等技术实现协程编程的方法。同时还介绍了事件循环的作用和使用方法,以及如何使用await关键字和Task对象来实现异步编程。最后还提供了一些快速上手的示例代码。 ... [详细]
  • 很多时候在注册一些比较重要的帐号,或者使用一些比较重要的接口的时候,需要使用到随机字符串,为了方便,我们设计这个脚本需要注意 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了如何通过conda安装Selenium的wheel文件,包括查看环境、卸载旧版本、下载新版本的wheel文件以及安装操作的步骤。同时提供了使用清华源的方法。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 这篇文章主要介绍了Python拼接字符串的七种方式,包括使用%、format()、join()、f-string等方法。每种方法都有其特点和限制,通过本文的介绍可以帮助读者更好地理解和运用字符串拼接的技巧。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
author-avatar
身强体硕之大家来锻炼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有