比如我电脑上的一个文件下的内容如下,两个子文件中只有文件无文件夹:
目录
os.walk遍历所有子目录和文件
首先需要理解os.walk返回的三个值的含义
root, dirnames, filenames = os.walk(filepath)
root 所指的是当前正在遍历的这个文件夹的本身的地址
dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
是不是感觉有点抽象,实际跑一下程序帮助大家理解
for root, dirnames, filenames in os.walk(filepath):
print(root)
D:\9_Code\Tensorflow_tutorials
D:\9_Code\Tensorflow_tutorials.ipynb_checkpoints
D:\9_Code\Tensorflow_tutorials\Convnet_Visualization
三个目录的绝对路径
for root, dirnames, filenames in os.walk(filepath):
print(dirnames)
[’.ipynb_checkpoints’, ‘Convnet_Visualization’]
[]
[]
三个目录中的子目录
for root, dirnames, filenames in os.walk(filepath):
print(filenames)
[‘cache.tf-data.index’, ‘Cat.jpg’, ‘Convnet_Visualization_CAM - 副本.ipynb’, ‘Convnet_Visualization_CAM.ipynb’, ‘Egyptian_cat.jpg’, ‘Load images.ipynb’]
[‘Load images-checkpoint.ipynb’]
[‘cat_egyptian.jpg’, ‘Convnet_Visualization.ipynb’, ‘Convnet_Visualization.png’, ‘Convnet_Visualization1.png’, ‘Convnet_Visualization2.png’, ‘Convnet_Visualization3.png’, ‘Convnet_Visualization4.png’, ‘Egptian_cat.jpg’, ‘sedan.jpg’, ‘tabby.jpg’, ‘Tabby1.jpg’, ‘tiger_cat.jpg’, ‘tigger_cat.jpg’]
三个目录中的文件
遍历所有子目录
dirlist=[]
for root, dirnames, filenames in os.walk(filepath):
for dirname in dirnames:
dirlist.append(os.path.join(root, dirname))