Skip to main content

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 []