os模块
OS模块是python代码与操作系统交互的接口,用来操作文件与路径
os函数
意义
os.getcwd()
获取当前工作目录
os.chdir('path')
改变当前工作目录
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.popen("bash command).read()
运行shell命令,获取执行结果 **
os.environ
获取系统环境变量 **
os.path
os.path函数
意义
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 模块
1.sys 模块常和os联用,添加系统路径
import os
import sys
BASE_PATH = os.path.dirname(os.path.dirname(__file__))
sys.path.append(BASE_PATH)
2.sys.modules 获取模块中的对象
import sys
def func():
print('hello world')
fn_obj = getattr(sys.modules[__name__], 'func') # func 必须用字符串
fn_obj()
# 结果
# hello world
random 模块
random 是数学模块,产生随机数
random函数
意义
random.randint(beg,end)
随机整数
random.randrange(beg,end,step)
随机选取beg到end间步长为step的数
random.random()
随机生成(0,1)浮点数
random.uniform(beg,end)
随机(beg,end)浮点数
random.choice(seq)
随机选取元素
random.sample(seq,n)
从序列中选取n个元素
random.shuffle(seq)
打乱序列
json 模块
将python的数据类型转换成可交互的json格式
import json
dic = {'name':'jack','age':20,'job':['otman']}
str_dic = json.dumps(dic) #序列化:将一个字典转换成一个字符串
print(type(str_dic),str_dic) # {"name": "jack", "age": 20, "job": ["otman"]}
dic2 = json.loads(str_dic) #反序列化:将一个字符串格式的字典转换成一个字典
print(dic2) #{'name': 'jack', 'age': 20, 'job': ['otman']}
f = open('jack.js','w')
dic = {'name':'jack','age':20,'job':['otman']}
json.dump(dic,f) #dump方法接收一个文件句柄,直接将字典转换成json字符串写入文件
f.close()
f = open('jack.js')
dic2 = json.load(f) #load方法接收一个文件句柄,直接将文件中的json字符串转换成数据结构返回
f.close()
print(dic2) #{'name': 'jack', 'age': 20, 'job': ['otman']}
pickle 模块
类似json,生成python专属的文件格式
import pickle
dic = {'name':'jack','age':20,'job':['otman']}
str_dic = pickle.dumps(dic)
dic2 = pickle.loads(str_dic)
f = open('jack.plk','wb') #2进制写入
pickle.dump(dic,f)
f.close()
f = open('jack.plk','rb') # 2进制打开
struct_time2 = pickle.load(f)
hashlib模块
加密模块,常用于给密码加密,但不能解密。
'md5加密'
import hashlib
def jiami(word):
md5 = hashlib.md5()
md5.update(word.encode('utf-8'))
return md5.hexdigest()