时间模块
-
三种格式
- 时间戳时间 浮点数 秒为单位
time.time()
起始时间:伦敦时间1970年0时0分0秒,北京时间1970年8时0分0秒 - 结构化时间 元组类型
time.localtime()
- 格式化时间 str类型->年月日 时分秒
time.strftime()
%H 小时
%M 分钟
%S 秒
%Y 年(2018)
%y 没有20的年(18)
%m 月
%d 日
%c 格式化时间
-
例题
- 获取某一个时间点的时间戳时间
例:2018年8月8日——格式化时间
import time
str_time = '2018-8-8'
struct_time = time.strptime(str_time,'%Y-%m-%d')
print(struct_time)
timestamp = time.mktime(struct_time)
print(timestamp)
- 获取某个时间戳的时间点
例:时间戳为3000000000的时间
import time
timestamp = 3000000000
struct_time = time.localtime(timestamp)
s = time.strftime('%Y-%m-%d %H:%M:%S',struct_time)
print(s)
随机数模块
-
功能
- 取随机小数
random.random()
取0-1的小数
random.uniform(2,3)
取2-3之间的小数 - 取随机整数
random.randint(1,2)
取1-2之间的整数,闭区间取值[1,2]
random.randrange(1,2)
取1-2的整数,这时是半开半闭取值[1,2),这时只能取到1 - 从列表中随机抽取
random.choice(list)
取列表中的一个元素,可以在迭代器中随机抽取
'random.sample(list,3)' 在列表中抽取3个值,同时抽取 - 乱序
random.shuffle(list)
打乱列表的数据
-
例题
- 生成随机数
import random
def verification_code(d=6,alph=True): #d为验证码位数,alph为是否含字母
code_str = ''
for i in range(d):
c = str(random.randint(0,9))
if alph == True:
Alp = chr(random.randint(65,90))
alp = chr(random.randint(97,122))
c = random.choice([c,Alp,alp])
code_str += c
return code_str
print(verification_code())
print(verification_code(4,False))
解析:这个生成的随机数可以通过改变参数进行自定义变化位数和是否含字母
os模块
-
文件夹、文件相关
os.makedirs('dirname1/dirname2')
在工作目录下创建文件夹,可以迭加创建多个
os.removedirs('dirname1/dirname2')
移除多个文件夹,先内后外,只能移除空的文件夹,不然抛出异常
os.mkdir('dirname')
在工作目录创建一个文件夹
os.rmdir('dirname')
移除一个文件夹
os.listdir('dirname')
将文件夹内的所有文件加入一个列表中
os.remove('path')
移除一个文件
os.rename('oldname','newname')
给文件重命名
os.stat('path/filename')
得到文件的状态信息
-
路径相关
os.path.abspath(path)
得到文件的绝对路径
os.path.split(path)
得到一个元组有两个元素,第一个是文件的上层目录,第二个是文件名
os.path.dirname(path)
得到路径中的文件的上层目录
os.path.basename(path)
得到路径中的文件名
os.path.exists(path)
判断文件路径是否存在
os.path.isabs(path)
判断文件路径是否是绝对路径
os.path.isfile(path)
判断文件路径所指路径是否为文件类型
os.path.isdir(path)
判断文件路径所指路径是否为文件夹类型
os.path.join(path1[,path2[,...]])
得到第一个绝对路径后的路径,将绝对路径后的多个路径连接,返回一个绝对路径
os.path.getatime(path)
得到文件的最后访问时间
os.path.getmtime(path)
得到文件的最后修改时间
os.path.getsize(path)
得到文件或者文件夹的大小
文件可以准确判断大小
文件夹在windows操作系统中默认大小为4096的倍数大小
在linux中可以返回准确的文件夹大小
-
操作系统相关
os.system('bash command')
在python解释器执行系统命令行的指令,有返回值
os.popen('bssh command').read()
在python解释器执行系统命令行的指令,没有返回值,结果是一个对象,必须通过read读出
os.getcwd()
得到当前工作空间的绝对地址
os.chdir('dirname')
更换工作空间
- 问题:
统计文件夹文件的总大小,如果这个文件夹中还有文件夹,应该继续到这个文件夹中去计算?
import os
def statistical_size(path):
total_size = 0
if os.path.isdir(path):
last_path = path
os.chdir(path)
for i in os.listdir(path):
print(os.path.abspath(i))
total_size += statistical_size(os.path.abspath(i))
os.chdir(last_path)
else:
total_size = os.path.getsize(path)
return total_size
print(statistical_size('F:python全栈'))
sys模块
——和python编译器交互的模块
模块方法
sys.argv
在命令行执行,返回一个列表,第一个元素是工作空间的绝对地址,可以在后面加值,返回一个多元素的列表
sys.exit(n)
退出程序exit(0),异常错误退出时sys.exit(1)
sys.version
得到python的程序版本
sys.path
得到模块的搜索路径,就是模块导入的文件列表,由左至右依次查找
sys.platform
得到操作系统的平台名称
例:
import sys
print(sys.platform)