常用模块

  • calendar
  • time
  • datetime
  • os
  • shutil
  • zip
  • math
  • string
  • 上述使用理论上都应该先导入,string是特例
  • calendar,time,datetime的区别参考中文意思

calendar

  • 跟日历相关的模块
  • calendar:获取一年的日历字符串
  • 参数
    • w = 每个日期之间的间隔字符数
    • l = 每周所占用的行数
    • c = 每个月之间的间隔字符数

In [6]:

#使用前先导入
import calendar
cal = calendar.calendar(2018)
print(cal)
print(type(cal))
                                  2018January                   February                   March
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su1  2  3  4  5  6  7                1  2  3  4                1  2  3  48  9 10 11 12 13 14       5  6  7  8  9 10 11       5  6  7  8  9 10 11
15 16 17 18 19 20 21      12 13 14 15 16 17 18      12 13 14 15 16 17 18
22 23 24 25 26 27 28      19 20 21 22 23 24 25      19 20 21 22 23 24 25
29 30 31                  26 27 28                  26 27 28 29 30 31April                      May                       June
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su1          1  2  3  4  5  6                   1  2  32  3  4  5  6  7  8       7  8  9 10 11 12 13       4  5  6  7  8  9 109 10 11 12 13 14 15      14 15 16 17 18 19 20      11 12 13 14 15 16 17
16 17 18 19 20 21 22      21 22 23 24 25 26 27      18 19 20 21 22 23 24
23 24 25 26 27 28 29      28 29 30 31               25 26 27 28 29 30
30July                     August                  September
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su1             1  2  3  4  5                      1  22  3  4  5  6  7  8       6  7  8  9 10 11 12       3  4  5  6  7  8  99 10 11 12 13 14 15      13 14 15 16 17 18 19      10 11 12 13 14 15 16
16 17 18 19 20 21 22      20 21 22 23 24 25 26      17 18 19 20 21 22 23
23 24 25 26 27 28 29      27 28 29 30 31            24 25 26 27 28 29 30
30 31October                   November                  December
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su1  2  3  4  5  6  7                1  2  3  4                      1  28  9 10 11 12 13 14       5  6  7  8  9 10 11       3  4  5  6  7  8  9
15 16 17 18 19 20 21      12 13 14 15 16 17 18      10 11 12 13 14 15 16
22 23 24 25 26 27 28      19 20 21 22 23 24 25      17 18 19 20 21 22 23
29 30 31                  26 27 28 29 30            24 25 26 27 28 29 3031<class 'str'>

In [8]:

cal = calendar.calendar(2018,l = 0 ,c = 5)
print(cal)
                                 2018January                  February                  March
Mo Tu We Th Fr Sa Su     Mo Tu We Th Fr Sa Su     Mo Tu We Th Fr Sa Su1  2  3  4  5  6  7               1  2  3  4               1  2  3  48  9 10 11 12 13 14      5  6  7  8  9 10 11      5  6  7  8  9 10 11
15 16 17 18 19 20 21     12 13 14 15 16 17 18     12 13 14 15 16 17 18
22 23 24 25 26 27 28     19 20 21 22 23 24 25     19 20 21 22 23 24 25
29 30 31                 26 27 28                 26 27 28 29 30 31April                     May                      June
Mo Tu We Th Fr Sa Su     Mo Tu We Th Fr Sa Su     Mo Tu We Th Fr Sa Su1         1  2  3  4  5  6                  1  2  32  3  4  5  6  7  8      7  8  9 10 11 12 13      4  5  6  7  8  9 109 10 11 12 13 14 15     14 15 16 17 18 19 20     11 12 13 14 15 16 17
16 17 18 19 20 21 22     21 22 23 24 25 26 27     18 19 20 21 22 23 24
23 24 25 26 27 28 29     28 29 30 31              25 26 27 28 29 30
30July                    August                 September
Mo Tu We Th Fr Sa Su     Mo Tu We Th Fr Sa Su     Mo Tu We Th Fr Sa Su1            1  2  3  4  5                     1  22  3  4  5  6  7  8      6  7  8  9 10 11 12      3  4  5  6  7  8  99 10 11 12 13 14 15     13 14 15 16 17 18 19     10 11 12 13 14 15 16
16 17 18 19 20 21 22     20 21 22 23 24 25 26     17 18 19 20 21 22 23
23 24 25 26 27 28 29     27 28 29 30 31           24 25 26 27 28 29 30
30 31October                  November                 December
Mo Tu We Th Fr Sa Su     Mo Tu We Th Fr Sa Su     Mo Tu We Th Fr Sa Su1  2  3  4  5  6  7               1  2  3  4                     1  28  9 10 11 12 13 14      5  6  7  8  9 10 11      3  4  5  6  7  8  9
15 16 17 18 19 20 21     12 13 14 15 16 17 18     10 11 12 13 14 15 16
22 23 24 25 26 27 28     19 20 21 22 23 24 25     17 18 19 20 21 22 23
29 30 31                 26 27 28 29 30           24 25 26 27 28 29 3031

In [10]:

#isleap: 判断某一年是否为闰年
calendar.isleap(2000)

Out[10]:

True

In [14]:

#leapdays:获取指定年份之间的闰年个数
calendar.leapdays(2000,2018)# 包含左边不包含右边

Out[14]:

5

In [17]:

#mouth()获取某个月的日历字符串
#格式:calendar.month(2018,3)
m3 = calendar.month(2018,3)
print(m3)
     March 2018
Mo Tu We Th Fr Sa Su1  2  3  45  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

In [19]:

# monthrange()获取一个月的周几开始和天数
#格式:calendar.monthrange(年,月)
#回值:元组(周几开始,总天数)
#注意:周默认0——6表示周一到周天
t = calendar.monthrange(2018,3)
print(t)
(3, 31)

In [22]:

# monthcalendar()获取一个月每天的矩阵列表
#格式:calendar.monthcalendar(年,月)
#回值:二级列表
#注意:矩阵中没有天数用0 表示
m = calendar.monthcalendar(2018,3)
print(m)
[[0, 0, 0, 1, 2, 3, 4], [5, 6, 7, 8, 9, 10, 11], [12, 13, 14, 15, 16, 17, 18], [19, 20, 21, 22, 23, 24, 25], [26, 27, 28, 29, 30, 31, 0]]

In [26]:

#prcal:直接打印日历
calendar.prcal(2018)
help(calendar.prcal)
                                  2018January                   February                   March
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su1  2  3  4  5  6  7                1  2  3  4                1  2  3  48  9 10 11 12 13 14       5  6  7  8  9 10 11       5  6  7  8  9 10 11
15 16 17 18 19 20 21      12 13 14 15 16 17 18      12 13 14 15 16 17 18
22 23 24 25 26 27 28      19 20 21 22 23 24 25      19 20 21 22 23 24 25
29 30 31                  26 27 28                  26 27 28 29 30 31April                      May                       June
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su1          1  2  3  4  5  6                   1  2  32  3  4  5  6  7  8       7  8  9 10 11 12 13       4  5  6  7  8  9 109 10 11 12 13 14 15      14 15 16 17 18 19 20      11 12 13 14 15 16 17
16 17 18 19 20 21 22      21 22 23 24 25 26 27      18 19 20 21 22 23 24
23 24 25 26 27 28 29      28 29 30 31               25 26 27 28 29 30
30July                     August                  September
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su1             1  2  3  4  5                      1  22  3  4  5  6  7  8       6  7  8  9 10 11 12       3  4  5  6  7  8  99 10 11 12 13 14 15      13 14 15 16 17 18 19      10 11 12 13 14 15 16
16 17 18 19 20 21 22      20 21 22 23 24 25 26      17 18 19 20 21 22 23
23 24 25 26 27 28 29      27 28 29 30 31            24 25 26 27 28 29 30
30 31October                   November                  December
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su1  2  3  4  5  6  7                1  2  3  4                      1  28  9 10 11 12 13 14       5  6  7  8  9 10 11       3  4  5  6  7  8  9
15 16 17 18 19 20 21      12 13 14 15 16 17 18      10 11 12 13 14 15 16
22 23 24 25 26 27 28      19 20 21 22 23 24 25      17 18 19 20 21 22 23
29 30 31                  26 27 28 29 30            24 25 26 27 28 29 3031Help on method pryear in module calendar:pryear(theyear, w=0, l=0, c=6, m=3) method of calendar.TextCalendar instancePrint a year's calendar.

In [27]:

#prmonth()直接打印整个月的日历
#格式:calendar.prmonth(年,月)
#返回值:无
calendar.prmonth(2019,1)
    January 2019
Mo Tu We Th Fr Sa Su1  2  3  4  5  67  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

In [29]:

#weekday()获取周几
#格式:calendar.weekday(年,月,日)
#返回值:周几对应的数字
calendar.weekday(2019,1,4)  #从0 开始代表周一

Out[29]:

4

time 模块

时间戳

- 一个时间的表示,根据不同的语言,可以是整数或者浮点数
- 是从1970年1月1日0时0分0秒到现在经历的秒数
- 如果是表示1970年以前或者更遥远的未来,可能出现异常
- 32位操作系统能够支持到2038年

UTC时间

- 世界标准时间
- 中国为UTC+8 东八分区

夏令时

- 夏天将时间调快一个小时

时间元组

一个包含时间内容的普通元组字段          属性       值4位年数     tm_year   2017月          tm_mon       1到12日          tm_mday    1到31小时          tm_hour    0到23分钟          tm_min    0到59秒          tm_sec     0到61(60或61是润秒)一周的第几日    tm_wday      0到6(0是周一)一年的第几日    tm_yday      1到366,一年中的第几天夏令时          tm_isdst    是否为夏令时,值为1时是夏令时,值为0时不是夏令时,默认为-1

In [30]:

#导入
import time 

In [35]:

#时间模块的属性
#timezone :当前时区和UTC时间相差的秒数,在没有夏令时的情况下的间隔,东八区是-28800
#altzone:当前时区和UTC时间相差的秒数,在有夏令时的情况下的间隔
#daylight:测当前是否是夏令时时间状态,0代表是
print(time.timezone)
print(time.altzone)
print(time.daylight)
-28800
-28800
0

In [36]:

#得到时间戳
time.time()

Out[36]:

1545841360.1504376

In [38]:

#返回当前时间
t = time.localtime()
print(t)
print(t.tm_year)
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=0, tm_min=24, tm_sec=14, tm_wday=3, tm_yday=361, tm_isdst=0)
2018

In [39]:

#asctime()返回元组的正常字符串化后的时间格式
t = time.localtime()
tt = time.asctime(t)
print(tt)
Thu Dec 27 00:25:58 2018

In [40]:

# ctime:获取字符串化的当前时间
t = time.ctime()
print(t)
Thu Dec 27 00:27:18 2018

In [41]:

#mktime()使用时间元组获取相应的时间戳
#格式: time.mktime(时间元组)
#返回值:浮点数时间戳
lt = time.localtime()
ts = time.mktime(lt)
print(type(ts))
print(ts)
<class 'float'>
1545841845.0

In [ ]:

#clock:获取CPU时间

In [45]:

#sleep:使进程进入睡眠状态,n秒后继续
for i in range(10):
    print(i)
    time.sleep(1)
0
1
2
3
4
5
6
7
8
9

In [60]:

print('hahahaha')
hahahaha

strftime:将时间元组转化为自定义字符串格式

-python中时间日期格式化符号:格式  含义     %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   当前时区的名称%%   %号本身

In [51]:

#把时间格式表示成  年,月,日  时 的格式
t = time.localtime()
ft = time.strftime('%Y年%m月%d日 %H:%M',t)
print(ft)
2018年12月27日 00:49

datetime模块

  • 提供日期和时间的运算和表达
  • 常见属性
    • datetime.data :提供年,月,日 属性
    • datetime.time :hour,minute,sec等
    • datetime.datetime:提供日期跟时间的组合
    • datetime.timedelta:提供一个时间差,时间长度

In [57]:

import datetime
print(datetime.date(2018,3,3))
print(datetime.time(3,3,3))
2018-03-03
03:03:03

In [59]:

#datetime.timedelta
from datetime import datetime,timedelta
t1 = datetime.now()#得到当前时间
print(t1.strftime('%Y年%m月%d日 %H:%M'))
td = timedelta(hours = 1)#表示一个小时的时间间隔
print((t1 +td).strftime('%Y年%m月%d日 %H:%M'))
2018年12月27日 01:09
2018年12月27日 02:09

In [62]:

#测量程序运行时间间隔实验
t0 = time.time()
time.sleep(3)
t1 = time.time()
print(t1 - t0)
3.003554344177246

In [65]:

# timeit-时间测量工具
#生成列表的两种方式的比较
import timeit
c = '''
sum =[]
for i in range(1000):
    sum.append(i)
'''
#利用timeit调用代码,执行100000次,查看运行时间
t1 = timeit.timeit(stmt='[i for i in range(1000)]',number = 100000)
#测量代码c 执行100000次运行结果
t2 =  timeit.timeit(stmt=c,number=100000)
print(t1)
print(t2)
3.176306335022673
7.545649177976884

In [67]:

help(timeit.timeit)
Help on function timeit in module timeit:timeit(stmt='pass', setup='pass', timer=<built-in function perf_counter>, number=1000000, globals=None)Convenience function to create Timer object and call timeit method.

In [69]:

# 测量一个函数的执行时间
def Doit():
    num = 3
    for i in range(num):
        print('This is {0}'.format(i))
#函数重复执行5次
t = timeit.timeit(stmt = Doit,number = 5)
print(t)
This is 0
This is 1
This is 2
This is 0
This is 1
This is 2
This is 0
This is 1
This is 2
This is 0
This is 1
This is 2
This is 0
This is 1
This is 2
0.02160664601251483

In [73]:

s = '''
def Doit(num):
    for i in range(num):
        print('This is {0}'.format(i))
'''#形如字符串,实际上还是代码
#执行Doit(num)
#setup负责把环境变量准备好,把num=3传入代码
t = timeit.timeit('Doit(num)',setup=s+'num=3',number = 5)
print(t)
#函数执行顺序
"""
首先定义函数:def Doit(num):
...
然后传入参数:num = 3
最后运行:Doit(num)
"""
This is 0
This is 1
This is 2
This is 0
This is 1
This is 2
This is 0
This is 1
This is 2
This is 0
This is 1
This is 2
This is 0
This is 1
This is 2
0.009518415026832372

Python中calendar,time,datetime模块详情解 -------18相关推荐

  1. python 当前时间的前一天_python中time、datetime模块的使用

    python中time.datetime模块的使用 1.前言 如果您从事过python web的开发,那一定有过这样的经历,对于各种复杂繁琐的业务逻辑,掺杂着各种各样的时间约束,让人很容易搞的头晕眼花 ...

  2. Python标准库datetime之datetime模块详解

    Python标准库datetime之datetime模块详解 1.日期时间对象 日期时间对象是指具有日期(年月日)和时间(时分秒)双重属性的实例 日期时间对象的类型为datetime.datetime ...

  3. python six模块详解_对python中的six.moves模块的下载函数urlretrieve详解

    实验环境:windows 7,anaconda 3(python 3.5),tensorflow(gpu/cpu) 函数介绍:所用函数为six.moves下的urllib中的函数,调用如下urllib ...

  4. Python基础学习之 os 模块详解

    Python基础学习之 os 模块详解 文章目录 Python基础学习之 os 模块详解 1. 路径操作 1.1 os.chdir(),切换当前工作目录: 1.2 os.getcwd(),返回工作目录 ...

  5. python常用内置模块-Python常用内置模块之xml模块(详解)

    xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言.从结构上,很像HTML超文本标记语言.但他们被设计的目的是不同的,超文本标记语言被设计用来显示 ...

  6. 【Python】8000字:Python时间系列之datetime模块

    公众号:尤而小屋 作者:Peter 编辑:Peter 大家好,我是Peter~ 在上篇Python或Pandas时间序列的文章中Peter详细介绍了time模块,本文中重点介绍的是datetime模块 ...

  7. python中根据字符串导入模块module

    python中根据字符串导入模块module 需要导入importlib,使用其中的import_module方法 import importlibmodname = 'datetime'dateti ...

  8. python中的subprocess.Popen()使用详解---以及注意的问题(死锁)

    从python2.4版本开始,可以用subprocess这个模块来产生子进程,并连接到子进程的标准输入/输出/错误中去,还可以得到子进程的返回值. subprocess意在替代其他几个老的模块或者函数 ...

  9. Python 标准库之 sys 模块详解

    Python sys 模块详解 1. 简介 "sys"即"system","系统"之意.该模块提供了一些接口,用于访问 Python 解释器 ...

最新文章

  1. 中文任务全面超越BERT:百度正式发布NLP预训练模型ERNIE(附项目地址)
  2. 解决Ext JS 4.1版本Tree在刷新时选择第一行的问题
  3. 1.DBCP和CP30的区别
  4. [HDOJ4588]Count The Carries(数学,规律)
  5. 可以通过执行报表RSVMCRT_MINI_DEBUGGER 查看CRM IPC中定价计算公式的相关源代码
  6. xdebug+webgrind
  7. linux下编译geos,linux下编译GDAL3.x(集成Proj和Geos等)
  8. java根号n元素的合并排序算法_根号N段合并排序
  9. UnFlow:具有双向普查损失的光流的无监督学习
  10. 学习【瑞吉外卖①】SpringBoot单体项目
  11. 【ACWing】4246. 最短路径和
  12. C#_打包发布变成一个绿色版本软件——Costura.Fody合并DLL和EXE
  13. 视频号小店新订单如何实时同步企业微信
  14. IMPERVA- 系统导出
  15. Triplet Loss 实现
  16. 红黑树Red/Black Tree
  17. 数值计算笔记-部分主元消去cholesky分解
  18. android 通讯录搜索算法,一个简单的通讯录联系人拼音匹配算法
  19. 牛客--2019快手--获得最多的奖金
  20. PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析

热门文章

  1. SA(需求分析师)笔试题目整理
  2. 用TTL线在CFE环境下拯救半砖wrt54g路由器
  3. Windows无法安装“某某某”内核模式打印驱动程序。若要获取与您运行的Windows版本相兼容的驱动程序,请与制造商联系。
  4. 小微企业背后的scrm有何神秘?
  5. Sping为什么使用依赖注入而不使用实例化对象的方式?
  6. 数据库的多表连接查询 emp表,dept表,salgrade表
  7. HTML5实现一个时钟动画
  8. 如何写一封专业的英文电子邮件
  9. 你听过最美的网名是什么?
  10. C# 中的delegate