import os
import sys
import os
from PyPDF2 import PdfFileReader, PdfFileWriter
import time
DIR = "C:\\Users\\pc\\Desktop\新建文件夹 (4)"
#获取最大递归深度
print(sys.getrecursionlimit())
sys.setrecursionlimit(2000)
def get_file_list(file_path):
dir_list = os.listdir(file_path)
if not dir_list:
return
else:
# 注意,这里使用lambda表达式,将文件按照最后修改时间顺序升序排列
# os.path.getmtime() 函数是获取文件最后修改时间
# os.path.getctime() 函数是获取文件最后创建时间
dir_list = sorted(dir_list, key=lambda x: os.path.getmtime(os.path.join(file_path, x)))
# print(dir_list)
return dir_list
# 合并同一目录下的所有PDF文件
def MergePDF(filepath, outfile):
output = PdfFileWriter()
outputPages = 0
pdf_fileName = get_file_list(DIR)
if pdf_fileName:
for pdf_file in pdf_fileName:
print("路径:%s" % pdf_file)
# 读取源PDF文件
# input = PdfFileReader(open(pdf_file, "rb"))
try:
input = PdfFileReader(open(os.path.join(filepath, pdf_file), "rb"))
except:
pass
# 获得源PDF文件中页面总数
pageCount = input.getNumPages()
outputPages += pageCount
print("页数:%d" % pageCount)
title = pdf_file[:-4]
print(title)
# 分别将page添加到输出output中
for iPage in range(pageCount):
output.addPage(input.getPage(iPage))
output.addBookmark(title=pdf_file[:-4], pagenum=outputPages - pageCount)
print("合并后的总页数:%d." % outputPages)
# 写入到目标PDF文件
outputStream = open(os.path.join(filepath, outfile), "wb")
output.write(outputStream)
outputStream.close()
print("PDF文件合并完成!")
else:
print("没有可以合并的PDF文件!")
MergePDF("C:\\Users\\pc\\Desktop\\新建文件夹 (4)", '测试.pdf')