第22篇 时间模块 random模块 os模块 sys模块

上篇内容回顾:
__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 文件路径-->


猜你喜欢

转载自www.cnblogs.com/cavalier-chen/p/9588385.html