
正文
python常用模块上篇
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
python常见模块分两篇分别介绍下述模块
- time模块
- random模块
- hashlib模块
- os模块
- sys模块
- logging模块
- 序列号模块
- configparser模块
- re模块
time模块
在python中,通常有这三种方式来表示时间:时间戳、元组(struct_time)、格式化的时间字符串:
1)时间戳:通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。
(2)格式化的时间字符串(Format String): ‘1988-03-16’
(3)元组(structtime) :structtime元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天等)
``` 1)时间戳 import time time.time() #返回当前时间戳
2)时间字符串 time.strftime('%Y-%m-%d %X')
3)时间元组 time.localtime() ```
几种时间形式的转换

一 时间戳<---->结构化时间:
localtime/gmtime mktimetime.localtime(360024) time.gmtime(360024)time.mktime(time.localtime())字符串时间<---->结构化时间: strftime/strptimetime.strftime("%Y-%m-%d %X", time.localtime()) time.strptime("2017-03-16","%Y-%m-%d")
random模块import random
random.random() #大于0且小于1之间的小数
0.17447943250177422random.randint(1,5) #大于等于1且小于等于5之间的整数
3random.randrange(1,3) #大于等于1且小于3之间的整数random.choice([2,'',[5,6]]) # 1或者23或者[4,5]random.sample([1,'',[4,5]],2) #列表元素任意两个组合random.uniform(5,8) #大于5且小于8的小数random.shuffle(对象) #打乱次序生成随机数import randomdef v_code():
code = ''
for i in range(5):
num = random.randint(0,9)
alf = chr(random.randint(65,90))
tmp = chr(random.randint(91,107))
add = random.choice([num,alf,tmp])
code = ''.join([code,str(add)])
return code
print(v_code())
hashlib模块
import random
random.random() #大于0且小于1之间的小数
0.17447943250177422random.randint(1,5) #大于等于1且小于等于5之间的整数
3random.randrange(1,3) #大于等于1且小于3之间的整数random.choice([2,'',[5,6]]) # 1或者23或者[4,5]random.sample([1,'',[4,5]],2) #列表元素任意两个组合random.uniform(5,8) #大于5且小于8的小数random.shuffle(对象) #打乱次序生成随机数import randomdef v_code():
code = ''
for i in range(5):
num = random.randint(0,9)
alf = chr(random.randint(65,90))
tmp = chr(random.randint(91,107))
add = random.choice([num,alf,tmp])
code = ''.join([code,str(add)])
return code
print(v_code())
这个模块提供了常见的摘要算法,如MD5,SHA1等等
摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。
import hashlibmd5 = hashlib.md5()
md5.update('how to use md5 in python hashlib?')
print(md5.hexdigest())
d26a53750bc40b38b65a520292f69306如果数据量很大,可以分块多次调用update(),最后计算的结果还是一样
md5 = hashlib.md5()
md5.update('how to use md5 in ')
md5.update('python hashlib?')
print(md5.hexdigest())
d26a53750bc40b38b65a520292f69306
虽然经过MD5加密,但是没经过加盐的密码很容易被骇客反推,所以有些人根据用户的用户名进行再次加密,这种加密就叫做加盐。
os模块
os模块是与操作系统交互的一个接口
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
os.curdir 返回当前目录: ('.')
os.pardir 获取当前目录的父目录字符串名:('..')
os.makedirs('dirname1/dirname2') 可生成多层递归目录
os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove() 删除一个文件
os.rename("oldname","newname") 重命名文件/目录
os.stat('path/filename') 获取文件/目录信息
os.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system("bash command") 运行shell命令,直接显示
os.environ 获取系统环境变量
os.path.abspath(path) 返回path规范化的绝对路径
os.path.split(path) 将path分割成目录和文件名二元组返回
os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) 如果path是绝对路径,返回True
os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path) 返回path所指向的文件或者目录的最后访问时间
os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
os.path.getsize(path) 返回path的大小
sys模块sys.argv 命令行参数List,第一个元素是程序本身路径
sys.exit(n) 退出程序,正常退出时exit(0)
sys.version 获取Python解释程序的版本信息
sys.maxint 最大的Int值
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称
sys.argv 命令行参数List,第一个元素是程序本身路径
sys.exit(n) 退出程序,正常退出时exit(0)
sys.version 获取Python解释程序的版本信息
sys.maxint 最大的Int值
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称







