os模块-文件和目录操作
我们可以通过前面讲的文件对象实现对于文件内容的读写操作。如果,还需要对文件和目录做其他操作,可以使用os和os.path模块。
os模块下常用操作文件的方法
方法名 | 描述 |
remove(path) | 删除指定的文件 |
rename(src,dest) | 重命名文件或目录 |
stat(path) | 返回文件的所有属性 |
listdir(path) | 返回path目录下的文件和目录列表 |
os模块下关于目录操作的相关方法,汇总如下:
方法名 | 描述 |
mkdir(path) | 创建目录 |
makedirs(path1/path2/path3/...) | 创建多级目录 |
rmdir(path) | 删除目录 |
removedirs(path1/path2...) | 删除多级目录 |
getcwd() | 返回当前工作目录:current work dir |
chdir(path) | 把path设为当前工作目录 |
walk() | 遍历目录树 |
sep | 当前操作系统所使用的路径分隔符 |
os.path模块
os.path模块提供了目录相关(路径判断、路径切分、路径连接、文件夹遍历)的操作
方法 | 描述 |
isabs(path) | 判断path是否绝对路径 |
isdir(path) | 判断path是否为目录 |
isfile(path) | 判断path是否为文件 |
exists(path) | 判断指定路径的文件是否存在 |
getsize(filename) | 返回文件的大小 |
abspath(path) | 返回绝对路径 |
dirname(p) | 返回目录的路径 |
getatime(filename) | 返回文件的最后访问时间 |
getmtime(filename) | 返回文件的最后修改时间 |
walk(top,func,arg) | 递归方式遍历目录 |
join(path,*paths) | 连接多个path |
split(path) | 对路径进行分割,以列表形式返回 |
splitext(path) | 从路径中分割文件的扩展名 |
walk()递归遍历所有文件和目录
os.walk() 方法是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。格式如下:
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
其中,top:是要遍历的目录。topdown:可选,True,先遍历top目录再遍历子目录。
返回三元组(root、dirs、files):
root:当前正在遍历的文件夹本身
dirs:一个列表,该文件夹中所有的目录的名字
files:一个列表,该文件夹中所有的文件的名字
【示例】使用walk()递归遍历所有文件和目录
import os path = os.getcwd() list_files = os.walk(path,topdown=False) for root,dirs,files in list_files: for name in files: print(os.path.join(root,name)) for name in dirs: print(os.path.join(root,name))