目录结构多层级情况下,怎么遍历所有子层级的文件。
os.listdir()
返回指定目录下的单层级
的文件和文件夹名字列表。
dirs = os.listdir(rootDir)
print(dirs) #返回值['.DS_Store', '1', '4.json', '3', '2']中,1、2、3是文件夹,4.json是文件
os.walk()
是一个目录遍历器,每次迭代都返回一个层级的root、dirs、files。相当于递归调用os.listdir()。遍历给定目录下的所有子层级的目录,总共有多少个子层级目录就遍历多少次,每次遍历返回当前层级的目录root、当前层级的所有子目录dirs、当前层级的所有文件files。
用法:
1、给定目录下所有的files
for root,dirs,files in os.walk(rootDir):
for file in files:
print(os.path.join(root,file))
2、给定目录下所有的dirs
for root,dirs,files in os.walk(rootDir):
for dir in dirs:
print(os.path.join(root, dir))
3、给定目录下所有的root和dirs和files(无重复)
for root,dirs,files in os.walk(rootDir):
for file in files:
print(os.path.join(root,file))
for dir in dirs:
print(os.path.join(root, dir))
4、给定目录下所有的root和dirs和files(root和dirs会有重复)
for root,dirs,files in os.walk(rootDir):
print(root)
for file in files:
print(os.path.join(root,file))
for dir in dirs:
print(os.path.join(root, dir))
网友评论