calender
跟日历相关的模块
函数名 | 功能 |
---|---|
calendar() | 获取一年的日历字符串,参数:w = 每个日期之间的间隔字符数l = 每周所占用的行数,c = 每个月之间的间隔字符串 |
isleap(y) | 判断某一年是否为闰年 |
leapdays(y1,y2) | 获取指定年份之间的闰年个数 |
month(y,m) | 获取某个月的日历字符串 |
monthrange(y,m) | 获取一个月的周几开始和总天数返回值为元组(周几开始,总天数) |
mouthcalendar(y,m) | 返回一个月每天的矩阵列表 |
prcal(y) | 直接打印日历 |
prmonth(y,m) | 打印月份日历 |
weekday(y, m, d) | 获取周几 |
time
几个跟时间相关的概念
- 时间戳
从1970.1.1,0h0m0s到现在经历的秒数(有些语言是整数有些是浮点数)如果表示时间是1970年以前或太遥远的未来可能出现异常,32位操作系统能够支持到2038年 - UTC时间
世界标准时间;中国时间是UTC+8 - 夏令时
- 时间元组
一个包含时间内容的普通元组
函数名 | 功能 |
---|---|
timezone | 当前时区和UTC时间相差的秒数(无夏令时) |
altzone | 当前时区和UTC时间相差的秒数(有夏令时) |
daylight | 查询当前是否是夏令时状态(0表示否) |
time | 得到时间戳 |
localtime | 获取当前时间的时间结构可以通过点操作符得到相应的属性元素的内容 |
asctime(时间元组) | 返回元组的正常字符串化后的时间格式 |
ctime | 获取字符串化的当前时间 |
mktime | 使用时间元组获取对应的时间戳返回浮点数 |
clock | 获取cpu时间(程序的执行时间) |
sleep | 使程序进入睡眠,n秒后继续 |
strftime | 将时间元组转化为自定义的字符串格式 |
strftime()的格式符及说明
格式符 | 说明 |
---|---|
%a | 星期的英文单词的缩写:如星期一, 则返回 Mon |
%A | 星期的英文单词的全拼:如星期一,返回 Monday |
%b | 月份的英文单词的缩写:如一月, 则返回 Jan |
%B | 月份的引文单词的缩写:如一月, 则返回 January |
%c | 返回datetime的字符串表示,如03/08/15 23:01:26 |
%d | 返回的是当前时间是当前月的第几天 |
%f | 微秒的表示: 范围: [0,999999] |
%H | 以24小时制表示当前小时 |
%I | 以12小时制表示当前小时 |
%j | 返回 当天是当年的第几天 范围[001,366] |
%m | 返回月份 范围[0,12] |
%M | 返回分钟数 范围 [0,59] |
%P | 返回是上午还是下午–AM or PM |
%S | 返回秒数 范围 [0,61]。。。手册说明的 |
%U | 返回当周是当年的第几周 以周日为第一天 |
%W | 返回当周是当年的第几周 以周一为第一天 |
%w | 当天在当周的天数,范围为[0, 6],6表示星期天 |
%x | 日期的字符串表示 :03/08/15 |
%X | 时间的字符串表示 :23:22:08 |
%y | 两个数字表示的年份 15 |
%Y | 四个数字表示的年份 2015 |
%z | 与utc时间的间隔 (如果是本地时间,返回空字符串) |
%Z | 时区名称(如果是本地时间,返回空字符串) |
strftime()例子
import time
#把时间表示成xx年xx月xx日 xx:xx
t = time.localtime()
ft = time.strftime("%Y年%m月%d日 %H : %M",t)
datetime
提供日期和时间的运算和表示
函数名 | 功能 |
---|---|
date(y,m,d) | 一个理想的日期(返回值是一个类) |
time(h,m,s,ms) | |
datetime | 提供日期和时间的组合 |
fromtimestamp(time.time()) | 从时间戳中返回本地时间 |
timedelta(year=/month=/day=/hour=/minute=) | 提供一个时间差,时间长度时间变量可直接相加 |
datetime常用类方法
- today
- now
- utcnow
- fromtimestamp(time.time()):从时间戳中返回本地时间
timeit时间测量工具
#例子1:
def p():
time.sleep(2)
t1 = time.time()
p()
print(time.time()-t1)
#例子2:
c = """
for i in range(1000):
sum = []
sum.append(i)
"""
t1 = timeit.timeit(stmt='[i for i in range(1000)]', number=10000)
t2 = timeit.timeit(stmt=c, number=10000)
print(t1)
print(t2)
#当测量对象为需要传参数的函数时需要配置setup参数setup负责把环境变量准备好相当于给待测函数创造小环境
c = """
def doIt(num):
for i in range(num):
print(i)
"""
t = timeit.timeit("doIt(num)",setup=c+"num=3",number=10)
os
跟操作系统相关,主要是文件操作
与系统相关的操作,主要包含在三个模块里
- os , 操作系统目录相关
- os.path , 系统路径相关操作
- shutil , 高级文件操作,目录树的操作,文件赋值,删除,移动
函数名 | 功能 |
---|---|
getcwd() | 获取当前工作目录(返回字符串)当前工作目录就是程序在进行文件相关操作,默认查找的目录 |
chdir(‘地址’) | 改变当前工作目录 |
listdir(‘地址’) | 获取一个目录中所有子目录和文件的名称列表 |
makedirs(‘递归路径’) | 递归创建文件夹,递归路径是指多个文件夹层层包含的路径就是递归路径 |
system(系统命令) | 运行系统shell命令,返回值 : 打开一个shell或终端界面,一般推荐使用subprocess代替 |
getenv(‘环境变量名’) | 获取指定的系统环境变量值,类似的还有putenv():放置环境变量 |
exit() | 退出程序 |
值部分
- os.curdir 当前目录
- os.pardir 父级目录
- os.sep 当前系统的路径分隔符
- windows : \
- linux : /
- os.linesep 当前系统的换行符
- windows : /r/n
- unix, linux, macos : /n
- os.name 当前系统的名称
- windows : nt
- mac/unix/linux : posix
os.path模块
函数名 | 功能 |
---|---|
abspath(“路径”) | 将绝对路径转化为相对路径 |
basename(“路径”) | 获取路径中的文件名部分 |
join(“路径1,路径2”) | 将多个路径合并成一个路径 |
split(“路径”) | 将路径切割为文件夹部分和当前文件部分,返回类型为元组 |
isdir(“路径”) | 检测是否是目录 ,返回类型是布尔值 |
exists(“路径”) | 检测文件或目录是否存在,返回类型布尔值 |
shutil 模块
归档和压缩
- 归档:把多个文件或文件夹合并到一个文件当中
- 压缩:用算法把多个文件或文件夹有损或无损的合并到一个文件当中
函数名 | 功能 |
---|---|
copy(“来源路径”,“目标路径”) | 复制文件,返回值,目标路径,copy的同时可以重命名 |
copy2(“来源路径”,“目标路径”) | 复制文件,保留元数据(文件信息);返回值,目标路径 |
copyfile(“来源路径”,“目标路径”) | 将一个文件的内容复制到目标文件中 |
move(“来源路径”,“目标路径”) | 移动文件/文件夹,返回目标路径 |
make_archive(“归档后的目录和文件名”,“后缀”,“需要归档的文件夹” ) | 归档操作,返回归档之后的地址 |
unpack_archive(“归档文件”,“解包后的地址”) | 解包操作 |
tips:copy和copy2的唯一区别在于copy2复制文件时尽量保留元数据
zipfile
函数名 | 功能 |
---|---|
ZipFile(“路径”) | 创建一个ZipFile对象表示一个zip文件 |
ZipFile.getinfo(文件名) | 获取zip文档内指定文件的信息,返回一个zipfile.zipinfo对象,他包括文件的详细信息 |
ZipFile.namelist() | 获取zip文档内所有的文件的名称list |
ZipFile.extractall(“目标路径”) | 解压zip文件中的所有文件到当前目录 |
random 随机数
函数名 | 功能 |
---|---|
random() | 获取0-1之间的随机小数 |
choice() | 随机返回序列中的某个值 |
shuffle() | 随机打乱原列表,原地打乱 |
randint([ , ]) | 随机产生输入范围内的整数 |
tips:所有的随机模块都是伪随机