os.walk()
获取当前目录路径,当前目录路径下所有子目录及非目录子文件
walk()语法格式如下:
os.walk(top[, topdown=True[, οnerrοr=None[, followlinks=False]]])
top – 根目录下的每一个文件夹(包含它自己),产生3-元组 (dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名】。
topdown --可选,为True或者没有指定, 一个目录的3-元组将比它的任何子文件夹的3-元组先产生 (目录自上而下)。如果topdown为 False, 一个目录的3-元组将比它的任何子文件夹的3-元组后产生 (目录自下而上)。
onerror – 可选,是一个函数; 它调用时有一个参数, 一个OSError实例。报告这错误后,继续walk,或者抛出exception终止walk。
followlinks – 设置为 true,则通过软链接访问目录。
import os
file_dir = ('D:\\filetext')
for root, dirs, files in os.walk(file_dir):
print(root,dirs,files)
# root 当前目录路径
# dirs 当前路径下所有子目录
# files 当前路径下所有非目录子文件
>>> D:\filetext ['01', '02', 'A'] ['A.txt', 'B.txt', 'C.txt']
>>> D:\filetext\01 [] []
>>> D:\filetext\02 [] []
>>> D:\filetext\A [] ['Abc.txt']
扩展:
os.path.splitext()函数将路径拆分为文件名+扩展名
import os
file_dir = ('D:\\filetext')
for root, dirs, files in os.walk(file_dir):
for file in files:
if os.path.splitext(file)[1] == '.txt':
print(root + '\\' + file)
>>> D:\filetext\A.txt
>>> D:\filetext\B.txt
>>> D:\filetext\C.txt
>>> D:\filetext\A\Abc.txt
os.listdir()
获取当前目录路径下所有子目录及非目录子文件
listdir()语法格式如下:
os.listdir(path)
path – 需要列出的目录路径
import os
file_dir = ('D:\\filetext')
print(os.listdir(file_dir))
>>> ['01', '02', 'A', 'A.txt', 'B.txt', 'C.txt']