pathlib
基础使用
pip安装
pythn2.x
pip install pathlib
python3.x - 3.4之后自带
常用案例
列出子目录
sub_dir = [x for x in p.iterdir() if x.is_dir()]
匹配
target_dir = r"Z:\work\2023\项目\江西千吨万人图纸\设计图合并"
p = Path(target_dir)
for each in p.glob("**/*.pdf"):
print(each)
工具代码
遍历目录,筛选指定后缀名
from pathlib import Path
def find_files_by_extension(directory: str, extension: str) -> list[str]:
try:
path = Path(directory)
# 校验目录是否存在
if not path.is_dir():
return []
# 处理后缀名中的点号
extension = extension.lstrip('.')
# 生成匹配公式并递归遍历目录
return [str(file) for file in path.glob(f'**/*.{extension}') if file.is_file()]
except Exception as e:
print(f"An error occurred: {str(e)}")
return []
遍历目录,筛选指定后缀名、前缀
def find_files_by_extension(directory: str, extension: str, prefix: Optional[str] = None) -> List[str]:
try:
path = Path(directory)
# 校验目录是否存在
if not path.is_dir():
return []
# 处理后缀名中的点号
extension = extension.lstrip(".")
# 生成匹配公式
if prefix:
pattern = f"**/{prefix}*.{extension}"
else:
pattern = f"**/*.{extension}"
# 递归遍历目录并过滤文件
return [str(file) for file in path.glob(pattern) if file.is_file()]
except Exception as e:
print(f"An error occurred: {str(e)}")
return []