目录遍历

最后更新于:2022-04-02 00:35:18

### 目录遍历 ### 包: os  os.path ### 函数: os.listdir(dirname):列出dirname下的目录和文件 os.getcwd():获得当前工作目录 os.curdir:返回当前目录('.') os.chdir(dirname):改变工作目录到dirname os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false os.path.isfile(name):判断name是不是一个文件,不存在name也返回false os.path.exists(name):判断是否存在文件或目录name os.path.getsize(name):获得文件大小,如果name是目录返回0 os.path.abspath(name):获得绝对路径 os.path.normpath(path):规范path字符串形式 os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在) os.path.splitext():分离文件名与扩展名 os.path.join(path,name):连接目录与文件名或目录 os.path.basename(path):返回文件名 os.path.dirname(path):返回文件路径 ### 递归法 ~~~ #coding:utf8 import os def dirList(path,allfile): filelist=os.listdir(path) for filename in filelist: filepath=os.path.join(path,filename) if os.path.isdir(filepath): dirList(filepath,allfile) allfile.append(filepath) allfile=[] dirList('D:\\pythonPro\\test',allfile) print allfile ~~~ ### os.walk()法 os.walk(path)返回一个生成器,可以用next()方法,或者for循环访问该生成器的每一个元素。他的每个部分都是一个三元组,('目录x',[目录x下的目录list],[目录x下面的文件list]) ~~~ path='D:\\pythonPro\\test' allfile1=[] g=os.walk(path) for root,dirs,files in os.walk(path): for filename in files: allfile1.append(os.path.join(root,filename)) for dirname in dirs: allfile1.append(os.path.join(root,dirname)) print allfile1 ~~~ os.walk()方法操作更加方便,实用。
';