#我需要将一个文件夹下的pdf文件(每个文件按文件名排序,前14个字符为数字和符号),将那个文件文件名的前14个字符替换为2021-04-001至2021-04-999的顺序号(紧紧替换前14个字符,后边的中文字符文件名内容不变)。
#或者请麻烦推荐类似问题的答案案例,我从中学习,谢谢。
#我需要将一个文件夹下的pdf文件(每个文件按文件名排序,前14个字符为数字和符号),将那个文件文件名的前14个字符替换为2021-04-001至2021-04-999的顺序号(紧紧替换前14个字符,后边的中文字符文件名内容不变)。
#或者请麻烦推荐类似问题的答案案例,我从中学习,谢谢。
直接重命名可以用os.rename("旧文件路径","新文件路径"),可参考:https://www.jb51.net/article/251067.htm。也可以另存到指定文件夹下。
import os
from pathlib import Path
from PyPDF2 import PdfFileWriter, PdfFileReader
# 创建Path对象
src_folder = Path('PDF3')
output_folder = Path('PDF_rename')
# 判断输出目录是否存在
if not output_folder.exists():
# 不存在则创建
output_folder.mkdir(parents=True)
file_list = list(src_folder.glob('*.pdf')) # 获得给定目录下的所有pdf文件的路径
for index, file in enumerate(file_list):
pdf_file_in = str(file) # 输入文件路径
# 输出文件名
output_name = file.stem.replace(file.stem[:14], '2021-04-' + str(index + 1).rjust(3, '0')) + ".pdf"
# print(output_name)
pdf_file_out = str(output_folder / output_name) # 输出文件的路径
# 直接重命名
# os.rename(pdf_file_in, pdf_file_out)
# 另存
input_file = PdfFileReader(pdf_file_in)
output_file = PdfFileWriter() # 创建PdfFileWriter对象
page_count = len(input_file.pages) # 获得PDF文件页数
for pageNum in range(page_count):
page = input_file.pages[pageNum]
output_file.add_page(page) # 将页面添加到PDF文件
with open(pdf_file_out, 'wb') as pf:
output_file.write(pf)