1.常用模块
1. time # time.time() #时间戳,1970年(Unix诞生)至今过去的秒数
1 import datetime 2 import time 3 import datetime 4 import getpass 5 6 print(time.time()) 7 print(time.ctime()) #Mon Jan 29 10:51:29 2018 8 print(time.ctime(time.time()-86400)) #Sun Jan 28 10:51:29 2018 9 print(time.gmtime(time.time())) #time.struct_time(tm_year=2018, tm_mon=1, tm_mday=29, tm_hour=2, tm_min=51, tm_sec=29, tm_wday=0, tm_yday=29, tm_isdst=0) 10 print(time.gmtime(time.time()).tm_year) #2018 11 print(time.gmtime(time.time()).tm_mon) #1 12 print(time.gmtime(time.time()).tm_mday)#29 13 14 #格式化 %s 通用的 ;%d 数字整型 ;# %f 浮点型 小数 ,所以一般直接都用%s 15 time_obj = time.gmtime(time.time()) 16 print(time_obj) 17 print('%s-%s-%s %s:%s' % (time_obj.tm_year,time_obj.tm_mon,time_obj.tm_mday,time_obj.tm_hour,time_obj.tm_min)) #2018-1-29 2:53
1 import datetime 2 ''' 3 datetime.date:表示日期的类。常用的属性有year, month, day 4 datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond 5 datetime.datetime:表示日期时间 6 datetime.timedelta:表示时间间隔,即两个时间点之间的长度 7 timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]]) 8 strftime("%Y-%m-%d") 9 ''' 10 import datetime 11 print datetime.datetime.now() #当前时间 12 print datetime.datetime.now() - datetime.timedelta(days=5) #指定天数之后的此刻时间
%Y Year with century as a decimal number. %m Month as a decimal number [01,12]. %d Day of the month as a decimal number [01,31]. %H Hour (24-hour clock) as a decimal number [00,23]. %M Minute as a decimal number [00,59]. %S Second as a decimal number [00,61]. %z Time zone offset from UTC. %a Locale's abbreviated weekday name. %A Locale's full weekday name. %b Locale's abbreviated month name. %B Locale's full month name. %c Locale's appropriate date and time representation. %I Hour (12-hour clock) as a decimal number [01,12]. %p Locale's equivalent of either AM or PM.
2.sys 模块
想让自己定义的模块能够全局执行,可以copy模块文件到python安装目录下 python--lib--site-package即可!
1)python--lib--site-packages #存放第三方安装的模块
1 for i in range(31): #进度条,百分比随着进度增加而增加 2 sys.stdout.write('\r') #可以使得百分比数字固定在左侧,不断刷新自身 3 sys.stdout.write('%s%% | %s' % (int(i/31*100),int(i/31*100)*'*')) 4 sys.stdout.flush() #刷新缓存区 5 time.sleep(0.3) #间隔时间
3.os模块
1 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 2 os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd 3 os.curdir 返回当前目录: ('.') 4 os.pardir 获取当前目录的父目录字符串名:('..') 5 os.makedirs('dir1/dir2') 可生成多层递归目录 6 os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 7 os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname 8 os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname 9 os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印 10 os.remove() 删除一个文件 11 os.rename("oldname","new") 重命名文件/目录 12 os.stat('path/filename') 获取文件/目录信息 13 os.sep 操作系统特定的路径分隔符,win下为"\\",Linux下为"/" 14 os.linesep 当前平台使用的行终止符,win下为"\t\n",Linux下为"\n" 15 os.pathsep 用于分割文件路径的字符串 16 os.name 字符串指示当前使用平台。win->'nt'; Linux->'posix' 17 os.system("bash command") 运行shell命令,直接显示 18 os.environ 获取系统环境变量 19 os.path.abspath(path) 返回path规范化的绝对路径 20 os.path.split(path) 将path分割成目录和文件名二元组返回 21 os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素 22 os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素 23 os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False 24 os.path.isabs(path) 如果path是绝对路径,返回True 25 os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False 26 os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False 27 os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略 28 os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间 29 os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
4.hashlib 加密
1 import hashlib 2 3 # ######## md5 ######## 4 hash = hashlib.md5() 5 # help(hash.update) 6 hash.update(bytes('admin', encoding='utf-8')) 7 print(hash.hexdigest()) 8 print(hash.digest()) 9 10 11 ######## sha1 ######## 12 13 hash = hashlib.sha1() 14 hash.update(bytes('admin', encoding='utf-8')) 15 print(hash.hexdigest()) 16 17 # ######## sha256 ######## 18 19 hash = hashlib.sha256() 20 hash.update(bytes('admin', encoding='utf-8')) 21 print(hash.hexdigest()) 22 23 24 # ######## sha384 ######## 25 26 hash = hashlib.sha384() 27 hash.update(bytes('admin', encoding='utf-8')) 28 print(hash.hexdigest()) 29 30 # ######## sha512 ######## 31 32 hash = hashlib.sha512() 33 hash.update(bytes('admin', encoding='utf-8')) 34 print(hash.hexdigest())
以上加密算法虽然依然非常厉害,但时候存在缺陷,即:通过撞库可以反解。所以,有必要对加密算法中添加自定义key再来做加密。(术语:加盐加密)
1 import hashlib 2 3 # ######## md5 ######## 4 5 hash = hashlib.md5(bytes('898oaFs09f',encoding="utf-8")) #自定义key,产生独一无二的加密准则。 6 hash.update(bytes('admin',encoding="utf-8")) 7 print(hash.hexdigest())
python内置还有一个 hmac 模块,它内部对我们创建 key 和 内容 进行进一步的处理然后再加密
1 import hmac 2 3 h = hmac.new(bytes('898oaFs09f',encoding="utf-8")) 4 h.update(bytes('admin',encoding="utf-8")) 5 print(h.hexdigest())