如何为每个PDF创建独立目录并将转换后的JPG存入其中?
解决方案
你只需要在处理每个PDF文件时,先创建对应名称的目录,再将生成的JPG文件存入该目录即可,关键改动如下:
- 创建独立目录:基于PDF文件名生成目录路径,使用
os.makedirs()创建目录,添加exist_ok=True参数避免目录已存在时抛出异常 - 修正文件保存路径:将JPG文件的保存路径改为刚创建的目录下,用
os.path.join()拼接路径更规范,避免手动拼接路径出现错误
修改后的完整代码:
import glob, sys, fitz, os, shutil zoom_x = 2.0 zoom_y = 2.0 mat = fitz.Matrix(zoom_x, zoom_y) # 提升分辨率 all_files = glob.glob('/Users/homefolder/Downloads/*.pdf') print(all_files) for filename in all_files: doc = fitz.open(filename) head, tail = os.path.split(doc.name) save_file_name = tail.split('.')[0] # 定义该PDF对应的目录路径 pdf_dir = f'/Users/homefolder/Downloads/{save_file_name}' # 创建目录(如果已存在则不报错) os.makedirs(pdf_dir, exist_ok=True) for page in doc: pix = page.get_pixmap(matrix=mat) # 拼接目录下的JPG文件路径 filepath_save = os.path.join(pdf_dir, f'{page.number}.jpg') pix.save(filepath_save) # 验证:查看所有生成的JPG文件(包含子目录) sample = glob.glob('/Users/homefolder/Downloads/**/*.jpg', recursive=True) print(sample)
额外说明:
os.path.join()会根据系统自动处理路径分隔符,比手动拼接字符串更可靠glob的recursive=True参数可以遍历所有子目录下的JPG文件,方便验证生成结果
内容的提问来源于stack exchange,提问作者frenchfries
相关产品推荐
相关产品推荐

