time模块
#time模块有三种表达形式,浮点、整形、时间类
#时间戳(timestamp)是一个浮点型数字#是给计算机看的
用法:
>>> time.strftime("%Y %m %d %X")
'2017 04 26 17:05:34' ###strftime 返回的时间是字符串时间,给人看的
>>> time.localtime()
time.struct_time(tm_year=2017, tm_mon=4, tm_mday=26, tm_hour=17, tm_min=5, tm_sec=42, tm_wday=2, tm_yday=116, tm_isdst=0)
#localtime 结构化时间,是用来对时间进行操作的
>>>
#结构化时间转换成时间戳
>>> time.mktime(time.localtime())
1493197743.0
结构化时间转换成字符时间
>>> time.strftime("%Y %m %d %X",time.gmtime()) '2017 04 26 09:10:07'
对时间格式没有什么要求的话,就用ctime()
>>> time.ctime() 'Wed Apr 26 17:12:51 2017' >>> >>> time.ctime(2342) 'Thu Jan 1 08:39:02 1970'
time 模块中的sleep(secs)
#线程推迟指定的时间运行,单位为秒。
#sleep 相当于I/o input output
#random 模块
#随机数模块,
random.randint 数字0到10 的随机数
>>> random.randint(0,10) 2 >>> random.randint(0,10) 5 >>> random.randint(0,10) 9 >>> random.randint(0,10) 0 >>>
random.choice从指定的值中随机取值
>>> random.choice([1,3,4,6,7,'a','b']) 1 >>> random.choice([1,3,4,6,7,'a','b']) 7 >>> random.choice([1,3,4,6,7,'a','b']) 'b' >>> random.choice([1,3,4,6,7,'a','b']) 7 >>> random.choice([1,3,4,6,7,'a','b']) 'b'
random.sample 从给出的指定的值中取出随机的3个数 或者N个数
>>> random.sample([1,23,4,6,7,'3'],3) ['3', 1, 6] >>> random.sample([1,23,4,6,7,'3'],3) [7, 6, 4] >>> random.sample([1,23,4,6,7,'3'],3) [1, 4, 23]
random.shuffle(item) #随机排序
>>> item=[1,2,3,4,5,6,0,'a','to'] >>> random.shuffle(item) >>> print(item) ['a', 2, 4, 0, 1, 3, 'to', 5, 6]
练习:
题:A98
用以上给出的方法,得出一个任意的字母加数字,如下
>>> print(validate()) 2U31K >>> print(validate()) E8101 >>> print(validate()) 3VB6V >>>
解题:
>>> def validate(): s='' for i in range(5): NUM=random.randint(0,9) r_alph=chr(random.randint(65,97)) ret=random.choice([str(NUM),r_alph]) s+=str(ret) return s >>> print(validate())
#hashlib
提供常见的摘要算法:
>>> import hashlib >>> m=hashlib.md5() #此时拿到的是一个对象,md5()是一个算法
有sha512、……..多种算法
算法 MD5 SHA1 ……加盐
#加盐:术语加盐的意思就是:例:如果开发的系统有用户验证模块,接收用户的密码,然后用户只输入123456 这种非常简单的密码。而在数据库里面这样经过hashlib 的方法以后,显得太过于简单,很容易被盗取密码的信息,那这个时候就用到了“加盐”,就是在用户密码的基础上多加了一些其它的字符串(经过hashlib方法的字符串)
os 模块
>>> print(os.getcwd()) #获取当前路径 pwd E:\old_boy_file\python3.5
os.chdir("E:\old_boy_file\py_fullstack_s4\2017-04-25") #切换目录: 等于 linux 的 cd os.makedirs('bbb/bbbbb') #新建目录 os.removedirs('bbb/bbbbb') #只会删除空的,并且是递归删除 os.rmdir() #只删除单级空目录 >>> os.listdir(r"E:\old_boy_file\py_fullstack_s4\2017-04-25") ['a.txt', 'note.py', 'practice', 'practice.py', 'preparation.py', '__init__.py'] #相当于ls 命令 >>> 查看文件的详细信息 >>> os.stat(r"E:\old_boy_file\py_fullstack_s4\2017-04-25") os.stat_result(st_mode=16895, st_ino=63613344736627683, st_dev=2250984183, st_nlink=1, st_uid=0, st_gid=0, st_size=4096, st_atime=1493203489, st_mtime=1493203489, st_ctime=1493044071) >>> st_atime=1493203489 ----> 文件访问时间 st_ctime=1493044071----> 文件的创建时间 st_mtime=1493203489,----->文件的修改时间
sys 模块
#主要跟解释器 交道
>>> import sys >>> sys.platform #查看系统平台 'win32' >>> sys.path #是导入的模块,要到哪些文件下去载入 ['', 'E:\\old_boy_file\\python3.5\\Lib\\idlelib', 'E:\\old_boy_file\\python3.5\\lib\\site-packages\\requests-2.13.0-py3.5.egg', 'E:\\old_boy_file\\python3.5\\python35.zip', 'E:\\old_boy_file\\python3.5\\DLLs', 'E:\\old_boy_file\\python3.5\\lib', 'E:\\old_boy_file\\python3.5', 'E:\\old_boy_file\\python3.5\\lib\\site-packages'] >>> sys.path.insert(0,r'one/two') #在导入的模块文件中,插入一个自己的文件,最先开始载入 >>> sys.path ['one/two', '', 'E:\\old_boy_file\\python3.5\\Lib\\idlelib', 'E:\\old_boy_file\\python3.5\\lib\\site-packages\\requests-2.13.0-py3.5.egg', 'E:\\old_boy_file\\python3.5\\python35.zip', 'E:\\old_boy_file\\python3.5\\DLLs', 'E:\\old_boy_file\\python3.5\\lib', 'E:\\old_boy_file\\python3.5', 'E:\\old_boy_file\\python3.5\\lib\\site-packages'] >>>