1.os模块
os模块是与操作系统交互的一个接口.
和文件夹相关的操作:
import os os.makedirs('a1/b2/c3/d4') #可以生成多层递归目录 os.removedirs('a/d') #递归删除空目录 有文件时则无法删除 os.mkdir('dirname') #生成单层目录 os.rmdir('dirname') #删除单层空目录,若目录不为空,则无法删除,会进行报错 print(os.listdir(r'C:UsersAdministratorPycharmProjectsuntitled')) # 指定目录下的所有文件和子目录,包括隐藏文件并以列表方式打印,参数指的是目录的路径
和文件的相关操作:
import os # os.remove('na') #删除文件 # os.rename('新名字','旧名字')#修改文件/目录名字 # print(os.stat(r'C:UsersAdministratorPycharmProjectsuntitledday15课上练习.py')) # print(os.stat('课上练习.py')) #获取文件或者目录信息,参数为路径或者文件/目录名
操作系统差异相关操作:
import os print(repr(os.sep)) #repr 供解释读取的语法 解读代码的原身 #输出操作系统特定的路径分隔符,win下为"\",Linux下为"/" print(repr(os.linesep))#输出用于当前平台使用的行终止符 win下为" ",Linux下为" " print(os.pathsep)#输出用于分割文件路径的字符串 win中;,linux下为: print(os.name)#输出字符串当前使用平台 win显示nt linux显示 posix
执行命令相关的操作:
import os os.system() #这里相当于打开了一个新的shell,运行命令,命令结束后,关闭shell,参数位置为shell的命令 os.popen('bash command').read() #popen的参数是cmd命令以及r(读)模式 执行cmd的命令,read()读出结果**** os.environ #获取系统环境变量
path系列和路径相关的操作:
import os # print(os.path.abspath('path')) #返回path规范化的绝对路径 # print(os.path.split('path')) # ('', 'path') 将path分割成目录和文件,以元祖的形式返回 # print(os.path.dirname('path')) #返回的是path的目录,也就是分割目录路径和文件后的第一个元素('', 'path')中的'' # print(os.path.basename('path')) #返回path最后的文件名,如何path以/或结尾,那么就会返回空值.分割目录的和文件的('', 'path')的'path' # print(os.path.exists('path')) #如果path是一个存在的文件返回True,不存在返回Flase # print(os.path.isabs('path')) #如果path是绝对路径,返回True,不是的话返回Flase # print(os.path.isfile('path'))#判断path是不是一个文件 # print(os.path.isdir('path')) #判断path是不是一个目录 # print(os.path.join('第一个参数从磁盘开始的路径','第二个参数要去哪'))#返回一个新的路径(将多个路径组合),第一个绝对路径之前的参数将被忽略 # print(os.path.getatime('path'))#返回path所指向的文件或者目录的最后访问时间 # print(os.path.getmtime('path'))#返回path所指向的文件或者目录的最后修改时间 # print(os.path.getsize('path')) #返回path的大小 # os.getcwd() #获取当前工作目录,即当前python脚本工作的目录路径 # os.chdir() #改变脚本工作目录,相当于shell下的cd 参数为要去的目录的工作路径 **** # os.curdir #返回当前目录:('.') # os.parcir #获取当前目录的父目录字符串名:('..')
os.stat('path/filename') 获取文件/目录信息 的结构说明:(了解即可)
stat 结构: st_mode: inode 保护模式 st_ino: inode 节点号。 st_dev: inode 驻留的设备。 st_nlink: inode 的链接数。 st_uid: 所有者的用户ID。 st_gid: 所有者的组ID。 st_size: 普通文件以字节为单位的大小;包含等待某些特殊文件的数据。 st_atime: 上次访问的时间。 st_mtime: 最后一次修改的时间。 st_ctime: 由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)。
2.sys模块:
sys模块是与python解释器交互的一个接口
sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit(1) sys.version 获取Python解释程序的版本信息 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称
3.hashlib模块
算法介绍 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。
什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。
摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,目的是为了发现原始数据是否被人篡改过。
摘要算法之所以能指出数据是否被篡改过,就是因为摘要函数是一个单向函数,计算f(data)很容易,但通过digest反推data却非常困难。而且,对原始数据做一个bit的修改,都会导致计算出的摘要完全不同。