1、python只列出当前目录(或者指定目录)下的文件或者目录条目
import os files,dirs=[],[] for item in os.listdir(): if os.path.isfile(item): files.append(item) elif os.path.isdir(item): dirs.append(item)
### os.listdir()中可以指定目录,默认为当前目录
### os.path.abspath(item)可以列出文件或者文件夹的绝对路径
### item.endswith(".tar.gz") 可以只看.tar.gz结尾的条目
2、使用os.walk('.')递归列出所有子目录,必须指定目录参数,及所有子文件条目,逻辑原理如下
首先os.walk('.')会返回一个对象,包括多个三元tupple(root, dirs, filenames),递归把一个目录及子目录遍历完:
for item in os.walk('.'): print(item) #######返回的逻辑如下############ ('.', ['A', 'B'], ['a.py', 'b.py']) ('.\\A', ['Adir01', 'Adir02'], ['A1.txt']) ('.\\A\\Adir01', ['AAAAA'], ['AA_5201351.txt']) ('.\\A\\Adir01\\AAAAA', [], ['qq_5201351.txt']) ('.\\A\\Adir02', [], []) ('.\\B', ['Bdir01', 'Bdir02'], ['w1.txt']) ('.\\B\\Bdir01', [], []) ('.\\B\\Bdir02', [], [])
3、因此可以通过如下方式递归列出指定目录下所有的子目录,及所有的子文件
import os all_files,all_dirs=[],[] for root, dirs, files in os.walk('.'): for file in files: all_files.append(os.path.join(root,file)) for dir in dirs: all_dirs.append(os.path.join(root,dir)) ## 同样,使用os.path.abspath(NAME)可以列出文件或者文件夹的绝对路径
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/13689652.html
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,文章没有高度、深度和广度,只是凑字数,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!