上篇内容回顾:
__eq__
obj1 == obj2 自动触发 obj1.__eq__(obj2)方法的执行
__del__ 析构方法 在删除一个对象之前会被调用
时间模块 time
随机数模块 random
python解释器交互模块 sys
import time print(time.time())
1536050087.3320181
时间的格式化输出
import time ft1 = time.strftime('%H:%M:%S') ft2 = time.strftime('%Y/%m/%d') ft3 = time.strftime('%y/%m/%d') print(ft1) print(ft2) print(ft3)
16:37:34 2018/09/04 18/09/04
import time print(time.localtime()) time.struct_time(tm_year=2018, tm_mon=9, tm_mday=4, tm_hour=16, tm_min=39, tm_sec=1, tm_wday=1, tm_yday=247, tm_isdst=0)
tm_isdst 是否是夏令时间
import time str_time = time.localtime() print(str_time.tm_mday) #4 一个月中的第几天 print(str_time.tm_wday) #1 一个星期的第几天 星期一为第0天 print(str_time.tm_zone) #?D1¨²¡À¨º¡Á?¨º¡À??
时间格式之间的转化
strptime mktime
Format string ----> struct_time ----> Timestamp
格式化时间 <---- 结构化时间 <---- 时间戳时间
strftime localtime/gmtime
import time str_time = '2018-08-08'#转化成时间戳时间 struct_time= time.strptime(str_time,'%Y-%m-%d') time_stamp = time.mktime(struct_time) print(time_stamp) 1533657600.0
#时间戳时间转化成格式时间
import time time_stamp = 1500000000 #10位数 struct_time = time.localtime(time_stamp) fmt_time =time.strftime('%Y-%m-%d %H:%M:%S',struct_time)#格式化时间的时候把格式放前面 print(fmt_time)
2017-07-14 10:40:00
import time time_stamp = 3000000000 #10位数 struct_time = time.localtime(time_stamp) fmt_time =time.strftime('%Y-%m-%d %H:%M:%S',struct_time)#格式化时间的时候把格式放前面 print(fmt_time) 2065-01-24 13:20:00
random模块
四大功能:
获取随机小数
获取随机整数
从一个列表中随机抽取元素
乱序
获取随机小数(0-1)
import random a = random.random() b = random.random() c = random.random() d = random.random() print([a,b,c,d]) [0.5556186833892995, 0.35317285274482835, 0.4632902806424555, 0.9959900029845247]
获取随机小数(n--m)
import random a = random.uniform(1,6) b = random.uniform(1,6) c = random.uniform(1,6) d = random.uniform(1,6) print([a,b,c,d]) [3.5518339950626583, 2.3811805272196676, 1.969062610547931, 4.710763919588933]
获取随机整数(n--m)包含m
import random a = random.randint(1,6) b = random.randint(1,6) c = random.randint(1,6) d = random.randint(1,6) print([a,b,c,d]) [4, 4, 4, 6]
获取随机整数(n--m)不包含m
import random a = random.randrange(1,6) b = random.randrange(1,6) c = random.randrange(1,6) d = random.randrange(1,6) print([a,b,c,d]) [3, 5, 1, 2]
获取随机整数(1--100)的奇数
import random a = random.randrange(1,100,2) b = random.randrange(1,100,2) c = random.randrange(1,100,2) d = random.randrange(1,100,2) print([a,b,c,d]) [83, 51, 81, 79]
从一个列表中随机抽取元素
import random li = [83, 51, 81, 79,'a',(1,'aa'),{'b':'dfasdf'}] ret1 =random.choice(li) ret2 =random.choice(li) ret3 =random.choice(li) ret4 =random.choice(li) print(ret1,ret2,ret3,ret4) 79 81 83 {'b': 'dfasdf'}
随机抽取n个样本
import random li = [83, 51, 81, 79,'a',(1,'aa'),{'b':'dfasdf'},12,12,5,2,2] ret1 =random.sample(li,3) ret2 =random.sample(li,3) ret3 =random.sample(li,3) ret4 =random.sample(li,3) print(ret1,ret2,ret3,ret4)
[{'b': 'dfasdf'}, (1, 'aa'), 2] [(1, 'aa'), 2, 51] [2, 12, (1, 'aa')] [2, 83, 81]
random.shuffle(li)乱序 没有返回值 直接在原列表上乱序
import random li = [83, 51, 81, 79,'a',(1,'aa'),{'b':'dfasdf'},12,12,5,2,2] random.shuffle(li) print(li) [79, 'a', 12, 83, 81, {'b': 'dfasdf'}, 5, (1, 'aa'), 12, 2, 51, 2]
os模块 与操作系统交互的模块
os.mkdir('dirname') 在当前工作路径生成'dirname'文件夹
os.makedirs('dirname1/dirname2') 生成dirname1以及子文件夹dirname2
os.rmdir('dirname') 删除'dirname'文件夹
os.removedirs('dirname1/dirname2') 删除dirname1以及子文件夹dirname2
学习os.stat模块
os.stat('path/filename') 获取文件的相关信息
st_size 文件的大小
st_atime 文件的上一次访问时间
st_mtime 文件的最后一席修改时间
import os ret = os.stat('C:\骑士计划1期\day24\day24笔记') st_size = ret[6] st_atime = ret[7] st_mtime = ret[8] print(st_size,st_atime,st_mtime)
2410 1536047235 1536047235
与文件路径相关的操作
os.path.abspath('C:\骑士计划1期\day24\课上练习.py')获取文件的绝对路径
os.path.split()对文件的路径进行切割 路径部分+文件名部分 返回的是一个元组
接着再来学习几个与操作系统相关的命令
os.system()
os.popen()
os.getcwd()
os.chdir()
import os
os.system('dir') #执行cmd 命令下的 dir命令
得到的结果 看不懂 怎么办?
import os
ret = os.popen('dir')
rec = ret.read()
print(rec)
驱动器 C 中的卷是 BOOTCAMP
卷的序列号是 8AD8-90EA
C:\骑士计划1期\day24 的目录
2018/09/04 16:12 <DIR> .
2018/09/04 16:12 <DIR> ..
2018/09/04 16:11 4,988 day24笔记
2018/09/04 16:11 1,408 笔记代码.py
2018/09/04 14:53 969 课上练习.py
3 个文件 7,365 字节
2 个目录 6,596,554,752 可用字节
sys 模块
import sys
print(sys.path)
['C:\\骑士计划1期\\day24', 'C:\\骑士计划1期',
'C:\\ProgramData\\Anaconda3\\python36.zip',
'C:\\ProgramData\\Anaconda3\\DLLs',
'C:\\ProgramData\\Anaconda3\\lib',
'C:\\ProgramData\\Anaconda3',
'C:\\ProgramData\\Anaconda3\\lib\\site-packages',###第三方扩展模块文件夹
'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\Babel-2.5.0-py3.6.egg',
'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32',
'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32\\lib',###内置模块所在地
'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\Pythonwin',
'C:\\Program Files\\JetBrains\\PyCharm 2017.3.2\\helpers\\pycharm_matplotlib_backend'
]
一个模块能否被导入,就看这个模块所在的目录在不在这个路径下
怎么在cmd命令中运行python文件夹
cmd-->python -->exit()-->python 文件路径-->