模块

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、……..多种算法

image

 

算法 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']
>>>
posted @ 2017-04-26 19:33  tonycloud  阅读(153)  评论(0编辑  收藏  举报