以上实例输出结果:

当前时间戳为: 1459996086.7115328

时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。


什么是时间元组?

很多Python函数用一个元组装起来的9组数字处理时间:

序号 字段
0 4位数年 2008
1 1 到 12
2 1到31
3 小时 0到23
4 分钟 0到59
5 0到61 (60或61 是闰秒)
6 一周的第几日 0到6 (0是周一)
7 一年的第几日 1到366 (儒略历)
8 夏令时 -1, 0, 1, -1是决定是否为夏令时的旗帜

上述也就是struct_time元组。这种结构具有如下属性:

序号 属性
0 tm_year 2008
1 tm_mon 1 到 12
2 tm_mday 1 到 31
3 tm_hour 0 到 23
4 tm_min 0 到 59
5 tm_sec 0 到 61 (60或61 是闰秒)
6 tm_wday 0到6 (0是周一)
7 tm_yday 一年中的第几天,1 到 366
8 tm_isdst 是否为夏令时,值有:1(夏令时)、0(不是夏令时)、-1(未知),默认 -1

获取当前时间

从返回浮点数的时间戳方式向时间元组转换,只要将浮点数传递给如localtime之类的函数。

#!/usr/bin/python3

import time

localtime = time.localtime(time.time())
print ("本地时间为 :", localtime)

以上实例输出结果:

本地时间为 : time.struct_time(tm_year=2016, tm_mon=4, tm_mday=7, tm_hour=10, tm_min=28, tm_sec=49, tm_wday=3, tm_yday=98, tm_isdst=0)

获取格式化的时间

你可以根据需求选取各种格式,但是最简单的获取可读的时间模式的函数是asctime():

#!/usr/bin/python3

import time

localtime = time.asctime( time.localtime(time.time()) )
print ("本地时间为 :", localtime)

以上实例输出结果:

本地时间为 : Thu Apr  7 10:29:13 2016

格式化日期

我们可以使用 time 模块的 strftime 方法来格式化日期,:

time.strftime(format[, t])
#!/usr/bin/python3

import time

# 格式化成2016-03-20 11:45:39形式
print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

# 格式化成Sat Mar 28 22:24:24 2016形式
print (time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))
  
# 将格式字符串转换为时间戳
a = "Sat Mar 28 22:24:24 2016"
print (time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y")))

以上实例输出结果:

2016-04-07 10:29:46
Thu Apr 07 10:29:46 2016
1459175064.0

python中时间日期格式化符号:

获取某月日历

Calendar模块有很广泛的方法用来处理年历和月历,例如打印某月的月历:

#!/usr/bin/python3

import calendar

cal = calendar.month(2016, 1)
print ("以下输出2016年1月份的日历:")
print (cal)

以上实例输出结果:

以下输出2016年1月份的日历:
    January 2016
Mo Tu We Th Fr Sa Su
             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

Time 模块

Time 模块包含了以下内置函数,既有时间处理的,也有转换时间格式的:

序号 函数及描述 实例
1 time.altzone
返回格林威治西部的夏令时地区的偏移秒数。如果该地区在格林威治东部会返回负值(如西欧,包括英国)。对夏令时启用地区才能使用。

以下实例展示了 altzone()函数的使用方法:

>>> import time
>>> print ("time.altzone %d " % time.altzone)
time.altzone -28800 
2 time.asctime([tupletime])
接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。

以下实例展示了 asctime()函数的使用方法:

>>> import time
>>> t = time.localtime()
>>> print ("time.asctime(t): %s " % time.asctime(t))
time.asctime(t): Thu Apr  7 10:36:20 2016 
3 time.clock()
用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用。

实例

由于该方法依赖操作系统,在 Python 3.3 以后不被推荐,而在 3.8 版本中被移除,需使用下列两个函数替代。

time.perf_counter()  # 返回系统运行时间
time.process_time()  # 返回进程运行时间
4 time.ctime([secs])
作用相当于asctime(localtime(secs)),未给参数相当于asctime()

以下实例展示了 ctime()函数的使用方法:

>>> import time
>>> print ("time.ctime() : %s" % time.ctime())
time.ctime() : Thu Apr  7 10:51:58 2016
5 time.gmtime([secs])
接收时间戳(1970纪元后经过的浮点秒数)并返回格林威治天文时间下的时间元组t。注:t.tm_isdst始终为0

以下实例展示了 gmtime()函数的使用方法:

>>> import time
>>> print ("gmtime :", time.gmtime(1455508609.34375))
gmtime : time.struct_time(tm_year=2016, tm_mon=2, tm_mday=15, tm_hour=3, tm_min=56, tm_sec=49, tm_wday=0, tm_yday=46, tm_isdst=0)
6 time.localtime([secs]
接收时间戳(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组t(t.tm_isdst可取0或1,取决于当地当时是不是夏令时)。

以下实例展示了 localtime()函数的使用方法:

>>> import time
>>> print ("localtime(): ", time.localtime(1455508609.34375))
localtime():  time.struct_time(tm_year=2016, tm_mon=2, tm_mday=15, tm_hour=11, tm_min=56, tm_sec=49, tm_wday=0, tm_yday=46, tm_isdst=0)
7 time.mktime(tupletime)
接受时间元组并返回时间戳(1970纪元后经过的浮点秒数)。
实例
8 time.sleep(secs)
推迟调用线程的运行,secs指秒数。

以下实例展示了 sleep()函数的使用方法:

#!/usr/bin/python3
import time

print ("Start : %s" % time.ctime())
time.sleep( 5 )
print ("End : %s" % time.ctime())
9 time.strftime(fmt[,tupletime])
接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。

以下实例展示了 strftime()函数的使用方法:

>>> import time
>>> print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
2016-04-07 11:18:05
10 time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')
根据fmt的格式把一个时间字符串解析为时间元组。

以下实例展示了 strptime()函数的使用方法:

>>> import time
>>> struct_time = time.strptime("30 Nov 00", "%d %b %y")
>>> print ("返回元组: ", struct_time)
返回元组:  time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)
11 time.time( )
返回当前时间的时间戳(1970纪元后经过的浮点秒数)。

以下实例展示了 time()函数的使用方法:

>>> import time
>>> print(time.time())
1459999336.1963577
12 time.tzset()
根据环境变量TZ重新初始化时间相关设置。
实例
13 time.perf_counter()
返回计时器的精准时间(系统的运行时间),包含整个系统的睡眠时间。由于返回值的基准点是未定义的,所以,只有连续调用的结果之间的差才是有效的。
实例
14 time.process_time()
返回当前进程执行 CPU 的时间总和,不包含睡眠时间。由于返回值的基准点是未定义的,所以,只有连续调用的结果之间的差才是有效的。
 

Time模块包含了以下2个非常重要的属性:

序号 属性及描述
1 time.timezone
属性time.timezone是当地时区(未启动夏令时)距离格林威治的偏移秒数(>0,美洲;<=0大部分欧洲,亚洲,非洲)。
2 time.tzname
属性time.tzname包含一对根据情况的不同而不同的字符串,分别是带夏令时的本地时区名称,和不带的。

日历(Calendar)模块

此模块的函数都是日历相关的,例如打印某月的字符月历。

星期一是默认的每周第一天,星期天是默认的最后一天。更改设置需调用calendar.setfirstweekday()函数。模块包含了以下内置函数:

序号 函数及描述
1 calendar.calendar(year,w=2,l=1,c=6)
返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数。
2 calendar.firstweekday( )
返回当前每周起始日期的设置。默认情况下,首次载入caendar模块时返回0,即星期一。
3 calendar.isleap(year)

是闰年返回 True,否则为 false。

>>> import calendar
>>> print(calendar.isleap(2000))
True
>>> print(calendar.isleap(1900))
False
4 calendar.leapdays(y1,y2)
返回在Y1,Y2两年之间的闰年总数。
5 calendar.month(year,month,w=2,l=1)
返回一个多行字符串格式的year年month月日历,两行标题,一周一行。每日宽度间隔为w字符。每行的长度为7* w+6。l是每星期的行数。
6 calendar.monthcalendar(year,month)
返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始。
7 calendar.monthrange(year,month)

返回两个整数。第一个是该月的星期几,第二个是该月有几天。星期几是从0(星期一)到 6(星期日)。

>>> import calendar
>>> calendar.monthrange(2014, 11)
(5, 30)

(5, 30)解释:5 表示 2014 年 11 月份的第一天是周六,30 表示 2014 年 11 月份总共有 30 天。

8 calendar.prcal(year,w=2,l=1,c=6)
相当于 print calendar.calendar(year,w,l,c).
9 calendar.prmonth(year,month,w=2,l=1)
相当于 print calendar.calendar(year,w,l,c)。
10 calendar.setfirstweekday(weekday)
设置每周的起始日期码。0(星期一)到6(星期日)。
11 calendar.timegm(tupletime)
和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间戳(1970纪元后经过的浮点秒数)。
12 calendar.weekday(year,month,day)
返回给定日期的日期码。0(星期一)到6(星期日)。月份为 1(一月) 到 12(12月)。

其他相关模块和函数

在Python中,其他处理日期和时间的模块还有:

" />

sys模块

sys 是一个和 Python 解释器关系密切的标准库,它和帮助我们访问和 Python 解释器联系紧密的变量和函数。在前面的代码学习中,你就已经见到过sys模块的用法了,这篇文章我们再次做一下介绍

常用函数
sys成员(变量和函数)功能描述
sys.argv获取运行 Python 程序的命令行参数。其中 sys.argv[0] 通常就是指该 Python 程序,sys.argv[1] 代表为 Python 程序提供的第一个参数,sys.argv[2] 代表为 Python 程序提供的第二个参数……依此类推。
sys.path是一个字符串列表,其中每个字符串都是一个目录名,在使用 import 语句导入模块时,解释器就会从这些目录中查找指定的模块。
sys.exit()通过引发 SystemExit 异常来退出程序。将其放在 try 块中不能阻止 finally 块的执行。你可以提供一个整数作为参数(默认为 0 ,标识成功),用来标识程序是否成功运行,这是 UNIX 的一个惯例。
sys.modules返回模块名和载入模块对应关系的字典。
sys.platform此变量是一个字符串,标识解释器当前正在运行的平台名称,它可能是标识操作系统的名称,也可能是标识其他种类的平台,如果运行 Jython 的话,就是 Java 虚拟机。
sys.stdin、sys.stdout、sys.stderr这三个模块变量是类文件流对象,分别表示标准输入、标准输出和标准错误。简单理解,Python 利用 sys.stdin 获得输入,利用 sys.stdout 输出。
sys.flags该只读属性返回运行 Python 命令时指定的旗标。
sys.getfilesystemencoding()返回在当前系统中保存文件所用的字符集。
sys.getrefcount(object)返回指定对象的引用计数。前面介绍过,当 object 对象的引用计数为 0 时,系统会回收该对象。
sys.getrecursionlimit()返回 Python 解释器当前支持的递归深度。该属性可通过 setrecursionlimit() 方法重新设置。
sys.getswitchinterval()返回在当前 Python 解释器中线程切换的时间间隔。该属性可通过 setswitchinterval() 函数改变。
sys.implementation返回当前 Python 解释器的实现。
sys.maxsize返回 Python 整数支持的最大值。在 32 位平台上,该属性值为 2**31-1;在 64 位平台上,该属性值为 2**63-1。
sys.executable该属性返回 Python 解释器在磁盘上的存储路径。
sys.byteorder显示本地字节序的指示符。如果本地字节序是大端模式,则该属性返回 big;否则返回 little。
sys.copyright该属性返回与 Python 解释器有关的版权信息。
sys.version返回当前 Python 解释器的版本信息。
sys.winver返回当前 Python 解释器的主版本号。
实例引入
    import sys
    print(sys.argv)  #命令行参数,List类型,第一个参数为程序本身路径
    sys.exit(0) #退出程序,正常退出时exit(0)
    print(sys.version) #获取Python版本信息
    print(sys.path) #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
    print(sys.platform) #返回操作系统平台名称

很多方法你也可以自己简单尝试一下

os模块

os 模块代表了程序所在的操作系统,主要用于获取程序运行所在操作系统的相关信息。可以先导入 os 模块,然后输入 os.__all__ 命令(__all__ 变量代表了该模块开放的公开接口),即可看到该模块所包含的全部变量和函数。当然了内容是非常多的,全部要记住也是不可能的,这里也只是介绍常用方法。

常用函数
os 成员(变量、函数和类)功能描述
os.name返回导入依赖模块的操作系统名称,通常可返回 ‘posix’、’nt’、 ‘java’ 等值其中之一。
os.environ返回在当前系统上所有环境变量组成的字典。
os.sep返回路径分隔符。
os.getenv(key, default=None)获取指定环境变量的值。
os.getpid()获取当前进程 ID。
os.putenv(key, value)该函数用于设置环境变量。
os.pathsep返回当前系统上多条路径之间的分隔符。一般在 Windows 系统上多条路径之间的分隔符是英文分号(;);在 UNIX 及类 UNIX 系统(如 Linux、Mac os X)上多条路径之间的分隔符是英文冒号(:)。
os.linesep返回当前系统的换行符。一般在 Windows 系统上换行符是“\r\n”:在 UNIX 系统上换行符是“\n”;在 Mac os X 系统上换行符是“\r”。
os.urandom(size)返回适合作为加密使用的、最多由 N 个字节组成的 bytes 对象。该函数通过操作系统特定的随机性来源返回随机字节,该随机字节通常是不可预测的,因此适用于绝大部分加密场景。
os进程管理函数功能描述
os.access(path, mode)检验权限模式
os.chdir(path)改变当前工作目录
os.chmod(path, mode)更改权限
os.chown(path, uid, gid)更改文件所有者
os.chroot(path)改变当前进程的根目录
os.close(fd)关闭文件描述符 fd
os.fchdir(fd)通过文件描述符改变当前工作目录
os.getcwd()返回当前工作目录
os.listdir(path)返回path指定的文件夹包含的文件或文件夹的名字的列表。
os.makedirs(path[, mode])递归文件夹创建函数。像mkdir(), 但创建的所有intermediate-level文件夹需要包含子文件夹。
os.mkdir(path[, mode])以数字mode的mode创建一个名为path的文件夹.默认的 mode 是 0777 (八进制)。
os.open(file, flags[, mode])打开一个文件,并且设置需要的打开选项,mode参数是可选的
os.popen(cmd, mode=’r’, buffering=-1)用于向 cmd 命令打开读写管道(当 mode 为 r 时为只读管道,当 mode 为 rw 时为读写管道),buffering 缓冲参数与内置的 open() 函数有相同的含义。该函数返回的文件对象用于读写字符串,而不是字节。
os.pathconf(path, name)返回相关文件的系统配置信息。
os.read(fd, n)从文件描述符 fd 中读取最多 n 个字节,返回包含读取字节的字符串,文件描述符 fd对应文件已达到结尾, 返回一个空字符串。
os.remove(path)删除路径为path的文件。如果path 是一个文件夹,将抛出OSError; 查看下面的rmdir()删除一个 directory。
os.removedirs(path)递归删除目录。
os.rename(src, dst)重命名文件或目录,从 src 到 dst
os.renames(old, new)递归地对目录进行更名,也可以对文件进行更名。
os.rmdir(path)删除path指定的空目录,如果目录非空,则抛出一个OSError异常。
os.statvfs(path)获取指定路径的文件系统统计信息
os.unlink(path)删除文件路径
os.write(fd, str)写入字符串到文件描述符 fd中. 返回实际写入的字符串长度
os.stat()官方解释过于复杂,返回stat_result对象。我们一般可以这样用os.stat(filename).st_size,提取文件的大小,。
实例引入
    import os
    print(os.getcwd()) #获取当前工作目录,就是当前脚本工作的目录路径
    print(os.chdir('dirname')) #改变当前脚本的工作路径,相当于shell下的cd,就是切换目录
    print(os.curdir) #返回当前目录'.'当前目录
    print(os.pardir) #获取当前目录的父目录字符串名'..'上级目录
    print(os.removedirs('dirname1') ) #若目录为空则删除,并递归到上一级目录,若也为空,则删除,以此类推
    print(os.mkdir('dirname')) #生成单级目录,相当于shell中mkdir dirname
    print(os.makedirs('dirname1/dirname2')) #可生成多层递归目录
    print(os.rmdir('dirname')) #删除单级空目录,若目录不为空,则无法删除会报错,相当于shell中rmdir dirname
    print(os.listdir('dirname')) #列出指定目录下所有文件和子目录,包括隐藏文件,并以列表方式打印
    print(os.remove('dirname')) #删除一个文件
    print(os.rename('oldname','newname')) #重命名文件/目录
    print(os.stat('path/filename')) #获取文件/目录信息
    print(os.sep) #输出操作系统特定的路径分割符,windows下为"\\",Linux下为"/"
    print(os.linesep) #输出当前平台使用的行终止符,windows下为"\t\n或者\r\n",Linux下为"\n"
    print(os.pathsep) #输出用于分割路径的字符串,Windows下为'.'
    print(os.name) #输出字符串指示当前使用平台,Windows下为'nt',Linux下为'posix'
    print(os.environ) #获取系统环境变量
    print(os.system('bash command')) #运行shell命令,直接显示,system('ipconfig /all')
    print(os.path.abspath(path)) #返回path规范化的绝对路径
    print(os.path.split(path)) #将path分割成目录和文件名二元组返回,第一部分为文件目录,第二部分文件名
    print(os.path.dirname(path)) #返回path的路径,就是os.path.split(path)的第一个元素
    print(os.path.basename(path)) #返回path最后的文件名,path以/或\结尾,就会返回空值
    # 就是os.path.split(path)第二部分,文件名
    print(os.path.exists(path)) #如果path存在,True,如果path不存在,False
    print(os.path.isabs(path)) #如果path是绝对路径,True,相对路径就是没有开头的目录
    print(os.path.isfile(path)) #如果path是一个存在的文件,True,否则 False
    print(os.path.isdir(path)) #如果path是一个存在的目录,True,否则 False
    print(os.path.join(path[path1[,path2[,...]]])) #将多个路径组合后返回,第一个绝代路径之前的参数将被忽略
    print(os.path.getatime(path)) #返回path所指向的文件或者目录的最后存取时间
    print(os.path.getmtime(path)) #返回path所指向的文件或者目录的最后修改时间

os模块的函数最多了,更多详细介绍请查看os官方文档

time模块

Python 的 time 模块下有很多函数可以转换常见日期格式。如函数time.time()用于获取当前时间戳, 如下实例:

#!/usr/bin/python3

import time;  # 引入time模块

ticks = time.time()
print ("当前时间戳为:", ticks)

时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。话说我们知道那么早的时间干什么?

时间元组

很多Python函数用一个元组装起来的9组数字处理时间:

序号 字段
04位数年2008
11 到 12
21到31
3小时0到23
4分钟0到59
50到61 (60或61 是闰秒)
6一周的第几日0到6 (0是周一)
7一年的第几日1到366 (儒略历)
8夏令时-1, 0, 1, -1是决定是否为夏令时的旗帜

上述也就是struct_time元组。这种结构具有如下属性:

序号属性
0tm_year2008
1tm_mon1 到 12
2tm_mday1 到 31
3tm_hour0 到 23
4tm_min0 到 59
5tm_sec0 到 61 (60或61 是闰秒)
6tm_wday0到6 (0是周一)
7tm_yday一年中的第几天,1 到 366
8tm_isdst是否为夏令时,值有:1(夏令时)、0(不是夏令时)、-1(未知),默认 -1

那么你可以在pycharm编辑器输入下面的代码来查看效果:

import time
localtime=time.localtime()
print('当前时间为:',localtime)

常用函数

time常用函数功能描述
time.asctime([t])将时间元组或 struct_time 转换为时间字符串。如果不指定参数 t,则默认转换当前时间。
time.ctime([secs])将以秒数代表的时间(格林威治时间)转换为时间字符串。
time.gmtime([secs])将以秒数代表的时间转换为 struct_time 对象。如果不传入参数,则使用当前时间。
time.localtime([secs])将以秒数代表的时间转换为代表当前时间的 struct_time 对象。如果不传入参数,则使用当前时间。
time.mktime(t)它是 localtime 的反转函数,用于将 struct_time 对象或元组代表的时间转换为从 1970 年 1 月 1 日 0 点整到现在过了多少秒。
time.perf_counter()返回性能计数器的值。以秒为单位。
time.process_time()返回当前进程使用 CPU 的时间,以秒为单位。
time.sleep(secs)暂停 secs 秒,什么都不干。
time.strftime(format[, t]) 将时间元组或 struct_time 对象格式化为指定格式的时间字符串。如果不指定参数 t,则默认转换当前时间。
time.strptime(string[, format])将字符串格式的时间解析成 struct_time 对象。
time.time()返回从 1970 年 1 月 1 日 0 点整到现在过了多少秒。
time.timezone返回本地时区的时间偏移,以秒为单位。
time.tzname返回本地时区的名字。
实例引入
import time

localtime =time.asctime(time.localtime(time.time()))
print ("本地时间为 :", localtime)
print(dir(time)) #查看模块的全部属性和函数

time.sleep(3) #暂停3秒,什么也不会干
print(time.asctime((2019,12,12,17,0,5,0,0,0)))
print(time.ctime(40))  #将秒数为代表的时间转换为时间字符串
print(time.gmtime(50)) #将秒数为代表的时间转换为struct_time对象
print(time.gmtime()) #当前时间转换为struct_time对象
print(time.process_time())  #返回当前进程使用cpu的时间
print(time.perf_counter())  #返回性能计数器的值

# 格式化成2019-12-12 17:20:24形式
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
# 格式化成Thu Dec 12 17:20:24 2019形式
print(time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))

# 将格式字符串转换为时间戳
a = "Thu Dec 12 17:20:24 2019"
print(time.mktime(time.strptime(a, "%a %b %d %H:%M:%S %Y")))

python中时间日期格式化符号:

指令含义
%a本地化的星期几的缩写名,比如 Sun 代表星期天
%A本地化的星期几的完整名
%b本地化的月份的缩写名,比如 Jan 代表一月
%B本地化的月份的完整名
%c本地化的日期和时间的表示形式
%d代表一个月中第几天的数值,范固: 01~31
%H代表 24 小时制的小时,范围:00~23
%I代表 12 小时制的小时,范围:01~12
%j一年中第几天,范围:001~366
%m代表月份的数值,范围:01~12
%M代表分钟的数值,范围:00~59
%p上午或下午的本地化方式。当使用 strptime() 函数并使用 %I 指令解析小时时,%p 只影响小时字段
%S代表分钟的数值,范围:00~61。该范围确实是 00~61,60 在表示闰秒的时间戳时有效,而 61 则是由于一些历史原因造成的
%U代表一年中表示第几周,以星期天为每周的第一天,范围:00~53。在这种方式下,一年中第一个星期天被认为处于第一周。当使用 strptime() 函数解析时间字符串时,只有同时指定了星期几和年份该指令才会有效
%w代表星期几的数值,范围:0~6,其中 0 代表周日
%W代表一年小第几周,以星期一为每周的第一天,范围:00~53。在这种方式下,一年中第一个星期一被认为处于第一周。当使用 strptime() 函数解析时间字符串时,只有同时指定了星期几和年份该指令才会有效
%x本地化的日期的表示形式
%X本地化的时间的表示形式
%y年份的缩写,范围:00~99,比如 2018 年就简写成 18
%Y年份的完整形式。如 2018
%z显示时区偏移
%Z时区名(如果时区不行在,则显示为空)
%%用于代表%符号

其实很多你也不必要去纠结过多,都是固定的写法,这里只是介绍了常用的,更详细的内容见官方文档,我没有必要在把内容照搬过来。

datatime模块

这个模块说真的,不常用,我在这里不再进行整理,初学者建议以后用到再过来查看datatime官方文档

shutil模块

    import shutil
    #将打开两个文件,将f1复制到f2中,需要指定原文件的编码格式
    f1=open('file.py',encoding='utf-8')
    f2=open('text.py','w',encoding='utf-8')
    shutil.copyfileobj(f1,f2)
   
    shutil.copyfile('file.py','file1.py')  #只拷贝文件,不会拷贝权限
    
    shutil.copymode(src,dst) #仅拷贝权限,内容、组、用户均不变
    
    shutil.copystat(src,dst) #拷贝状态的信息,包括权限,修改时间,最后一次修改时间
   
    shutil.copy(src,dst)  #拷贝文件和状态信息
   
    shutil.copy2(src,dst) #拷贝文件和状态信息
    
    shutil.copytree('file','new_file') #递归的去拷贝文件,相当于拷贝目录
    
    shutil.rmtree('new_file')#递归的去删除目录
    
    shutil.move(src,dst) #递归的去移动文件
压缩
shutil.make_archive(base_name,format,...)
shutil.make_archive('new','zip','C:\/Users\Administrator\.PyCharmCE2019.1\config\scratches')
  • base_name:压缩包的文件名,也可以是压缩包的路径,只是文件名时,保存至当前目录,否则保存至指定目录
  • format:压缩包种类,zip、tar、bztar、gztar
  • root_dir:要压缩的文件夹路径(默认当前路径)
  • owner:用户,默认当前用户
  • group:组,默认当前组
  • logger:用于记录日志,通常是logging.Logger对象

math模块

    ceil #取大于等于x的最小的整数值,如果x是一个整数,则返回x
    copysign #把y的正负号加到x前面,可以使用0
    cos #求x的余弦,x必须是弧度
    degrees #把x从弧度转换成角度
    e #表示一个常量
    exp #返回math.e,也就是2.71828的x次方
    expm1 #返回math.e的x(其值为2.71828)次方的值减1
    fabs #返回x的绝对值
    factorial #取x的阶乘的值
    floor #取小于等于x的最大的整数值,如果x是一个整数,则返回自身
    fmod #得到x/y的余数,其值是一个浮点数
    frexp #返回一个元组(m,e),其计算方式为:x分别除0.5和1,得到一个值的范围
    fsum #对迭代器里的每个元素进行求和操作
    gcd #返回x和y的最大公约数
    hypot #如果x是不是无穷大的数字,则返回True,否则返回False
    isfinite #如果x是正无穷大或负无穷大,则返回True,否则返回False
    isinf #如果x是正无穷大或负无穷大,则返回True,否则返回False
    isnan #如果x不是数字True,否则返回False
    ldexp #返回x*(2**i)的值
    log #返回x的自然对数,默认以e为基数,base参数给定时,将x的对数返回给定的base,计算式为:log(x)/log(base)
    log10 #返回x的以10为底的对数
    log1p #返回x+1的自然对数(基数为e)的值
    log2 #返回x的基2对数
    modf #返回由x的小数部分和整数部分组成的元组
    pi #数字常量,圆周率
    pow #返回x的y次方,即x**y
    radians #把角度x转换成弧度
    sin #求x(x为弧度)的正弦值
    sqrt #求x的平方根
    tan #返回x(x为弧度)的正切值
    trunc #返回x的整数部分

random模块