import os
aa = os.listdir(in_dir)#遍历当前目录
print(f'os.listdir返回的数据类型是:{type(aa)}')
bb = os.walk(in_dir)#递归遍历每个目录
print(f'os.walk返回的数据类型是:{type(bb)}')
import glob #这个不会递归找子目录下的文件
cc = glob.glob(f'{in_dir}/*/*.xlsx')
print(f'glob.glob返回的数据类型是:{type(cc)}')
from pathlib import Path #这个会递归找子目录文件
dd = Path(in_dir).rglob('*.xlsx')
print(f'Path(in_dir).rglob返回的数据类型是:{type(dd)}')
输出的结果是:
os.listdir返回的数据类型是:<class 'list'> os.walk返回的数据类型是:<class 'generator'> glob.glob返回的数据类型是:<class 'list'> Path(in_dir).rglob返回的数据类型是:<class 'generator'>
估计是因为,python认为递归的场景大多占用内存很高,就将数据类型设置为“generator”。