python遍历目录下所有文件

By 刘志军 , 2020-06-07, 分类: qa

dir

import os
files = os.listdir("C:\\Users")
print(files)

>>>
['All Users', 'Default', 'Default User', 'desktop.ini', 'lzjun', 'Public', '__SUNLOGIN_USER__']

listdir 会返回该目录下所有子目录和文件,如果只想找文件,可以用 os.path 模块isfile 进行过滤

files = [f for f in files if os.path.isfile(os.path.join("C:\\Users", f))]
print(files)
>>>
['desktop.ini']

第二种方式是使用 os.walk

walk 方法返回的是一个生成器对象,将返回整个目录树,迭代时,先返回最外层目录和文件,然后再返回子目录下的文件和目录,直到最里面一层目录为止。

每次迭代时,返回一个tuple对象,包含三个元素 dirpath, dirnames, filenames,分别为当前目录的名字,当前目录下所有子目录,当前目录下所有文件。

for item in walk("C:\\Users"):
    dirpath, dirnames, filenames = item
    print(dirpath)
    print(dirnames)
    print(filenames)
    break

>>>
C:\Users
['All Users', 'Default', 'Default User', 'lzjun', 'Public', '__SUNLOGIN_USER__']
['desktop.ini']

这里因为我们只想获取第一层目录和文件,所以for循环一次后就break了。


关注公众号「Python之禅」,回复「1024」免费获取Python资源

python之禅