Day14 Python基础之os/sys/hashlib模块(十二)
os模块
os.getcwd() #获取当前工作路径
os.chdir(‘dirname1/dirname2/dirname3’) #改变当前脚本的工作路径,相当于cmd下的cd
os.makedirs(‘dirname1/dirname2/dirname3’) #生成多层递归目录
os.makedir('dirname') #生成单级目录
os.curdir #当前目录('.')
os.pardir #获取当前目录的父目录字符串名字('..')
os.rmdirs('dirname1/dirname2') #若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.rmdir('dirname') #删除单级空目录,若目录不为空则无法删除,报错,相当于shell中的rmdir dirname
os.listdir(r'绝对路径') #列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
注:r是原生字符的意思(raw),指把所有的字符串看做没有特殊含义的
os.remove() #删除一个文件(只能删文件不能删除文件夹)
os.rename('oldname','newname') #重命名文件或目录
注:abc.txt和abc是两个不同的文件
os.state('path/filename') #获取目录或文件的信息
注:st_atime=1528895787, st_mtime=1528895787,分别是最后一次访问的时间和最后一次修改的时间
os.sep #输出操作系统特定的路径分隔符,win下为
"\\",Linux下为"
/
" s=os.sep;E:s python_fullstack_code s week1 s test.py
os.linesep #输出当前操作系统的换行终止符 ,win下为
"\r\n"
,Linux下为
"\n"
os.pathsep #输出用于区分文件路径的字符串,win下是‘;’,linux下是‘:’
os.system('bash command')#运行shell命令(dir,config等等命令)直接显示
os.environ #获取系统环境变量
os.path.abspath(path) #返回path规范下的路径
os.path.split(path) #将path分割成目录和文件名二元组返回
os.path.dirname(path) #返回path的目录.q其实就是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所指向的文件或者目录的最后修改时间
sys模块(与python解释器进行交互的操作)
sys.argv #命令行参数list,第一个元素是程序本身路径
1 import sys 2 def post(): 3 print('上传功能') 4 def download(): 5 print('下载功能') 6 print(sys.argv) 7 if sys.argv[1]=='post': 8 post() 9 elif sys.argv[1]=='download': 10 download()
在cmd窗口调用:
sys.exit(n) #退出程序,exit(0)是正常参数
sys.path #返回模块的搜索路径,初始化时使用PATHONPATH环境变量的值
sys.platform #返回操作系统名称(用途:实现跨平台的判断,已确定正确的命令格式)
hashlib模块(加密操作)
hashlib.md5()
1 import hashlib 2 m=hashlib.md5() 3 print(m) 4 m.update('hello world'.encode('utf-8')) 5 print(m.digest()) #digest方法取出加密后的值 6 print(m.hexdigest()) #hexdigest方法将加密后的值以十六进制显示 7 8 输出结果: 9 <md5 HASH object @ 0x010A7608> 10 5eb63bbbe01eeed093cb22bb8f5acdc3 11 b'^\xb6;\xbb\xe0\x1e\xee\xd0\x93\xcb"\xbb\x8fZ\xcd\xc3'
1 import hashlib 2 m=hashlib.md5() 3 print(m) 4 m.update('hello world'.encode('utf-8')) 5 print(m.hexdigest()) #hexdigest方法将加密后的值以十六进制显示 6 m.update('alex'.encode('utf-8')) 7 print(m.hexdigest()) #hexdigest方法将加密后的值以十六进制显示 8 等价于 9 m2=hashlib.md5() 10 m2.update('hello world alex'.encode('utf-8')) 11 print(m.hexdigest()) 12 13 输出结果: 14 5eb63bbbe01eeed093cb22bb8f5acdc3 15 82bb8a99b05a2d8b0de2ed691576341a 16 82bb8a99b05a2d8b0de2ed691576341a
hashlib.sha256
1 import hashlib 2 m=hashlib.sha256() 3 m.update('hello world'.encode('utf-8')) 4 print(m.hexdigest()) 5 输出结果: 6 b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9