发布时间:2026-07-21阅读(1)
20221208星期四:
# os方式一:通过递归调用,拿到所有文件,或者指定结尾的文件:
# os方式二:通过 os.walk ,拿到目录下所有的目录及文件:
# pathlib方式三:通过 rglob 方法:获取文件夹下(以及子文件夹)所有文件,返回文件路径列表;
# pathlib方式四:同上,使用列表推导式方式:
pathlib方式五:通过 glob 方法:获取文件夹下(不含子文件夹)所有文件,返回文件路径列表;
import osfrom pathlib import Pathpath = rF:\filePath
# os方式一:
# 通过递归调用,拿到所有文件,或者指定结尾的文件:
# os方式一:# 通过递归调用,拿到所有文件,或者指定结尾的文件:listfileAll = []def getAllDirRE(path): # 得到当前目录下的所有目录及文件: filesList = os.listdir(path) # 处理每一个文件: for fileName in filesList: # 判断是否是路径(用绝对路径): fileabsPath = os.path.join(path,fileName) if os.path.isdir(fileabsPath): # 递归调用: getAllDirRE(fileabsPath) else: # 拿到 .xlsx 结尾的文件: if fileName.endswith(".xlsx"): listfileAll.append(fileabsPath)getAllDirRE(path)print(listfileAll:,len(listfileAll),listfileAll)
# os方式二:
# 通过 os.walk ,拿到目录下所有的目录及文件:
# os方式二:# 通过 os.walk ,拿到目录下所有的目录及文件:pathWalk = os.walk(path)listWalkAll = []for root,dirs,files in pathWalk: """root: F:\filePath root: F:\filePath\fileNew root: F:\filePath\fileNew\fileThre """ # print(root:,root) # 筛除空的列表: if files: for i in files: # 筛选 .xlsx 文件,且不为 __init__.py: if i.endswith(.xlsx) and i != __init__.py: listWalkAll.append(os.path.join(root,i))print(listWalkAll:,len(listWalkAll),listWalkAll)
# pathlib方式三:
# 通过 rglob 方法:获取文件夹下(以及子文件夹)所有文件,返回文件路径列表;
# pathlib方式三:# 通过 rglob 方法:获取文件夹下(以及子文件夹)所有文件,返回文件路径列表;folder = Path(path.strip())result = folder.rglob(f"*.*") # 也可以写成 result = list(folder.rglob(f"*.*"))# result: <class generator> <generator object Path.rglob at 0x000002227CCC82E0>print(result:,type(result),result)result01 = []for i in result: # i: <class pathlib.WindowsPath> F:\filePath\anaconda镜像下载.txt # print(i:,type(i),i) result01.append(str(i))# result01: <class list> 10print(result01:,type(result01),len(result01),result01)
# pathlib方式四:
# 使用列表推导式方式:
# 通过 rglob 方法:获取文件夹下(含子文件夹)所有文件,返回文件路径列表;
# pathlib方式四:# 使用列表推导式方式:# 通过 rglob 方法:获取文件夹下(含子文件夹)所有文件,返回文件路径列表;result02 = [str(f) for f in folder.rglob("*.*") if Path(f).is_file()]# result01: <class list> 10print(result02:,type(result02),len(result02),result02)
# pathlib方式五:
# 使用列表推导式方式:
# 通过 glob 方法:获取文件夹下(不含子文件夹)所有文件,返回文件路径列表;
# pathlib方式五:# 使用列表推导式方式:# 通过 glob 方法:获取文件夹下(不含子文件夹)所有文件,返回文件路径列表;# 即,子文件的文件不会获取result03 = [str(f) for f in folder.glob("*.*") if Path(f).is_file()]# result01: <class list> 5print(result03:,type(result03),len(result03),result03)
"""相对于传统的os及os.path,pathlib具体如下优势:pathlib实现统一管理,解决了传统操作导入模块不统一问题;pathlib使得在不同操作系统之间切换非常简单;pathlib是面向对象的,路径处理更灵活方便,解决了传统路径和字符串并不等价的问题;pathlib简化了很多操作,简单易用。"""




Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图