作者:陈熹
来源:早起Python
大家好,今天分享一个实用的办公脚本:将多个PDF合并为一个PDF,例如我手上现在有如下3个PDF分册,需要整合成一个完整的PDF
如果换成你操作的话,是不是打开百度搜索:PDF合并,然后去第三方网站操作,可能会收费不说还担心文件泄漏,现在有请Python出场,简单快速,光速合并,拿走就用!
首先导入需要的库和路径设置
import os from PyPDF2 import PdfFileReader, PdfFileWriter if __name__ == '__main__': # 设置存放多个pdf文件的文件夹 dir_path = r'C:\Scientific Research\Knowladge\Ophthalmology\Chinese Ophthalmology' # 目标文件的名字 file_name = "中华眼科学(第3版)合并版.pdf"
接着获取所有pdf文件的绝对路径,这里需要利用os库中的os.walk遍历文件和os.path.join拼接路径
for dirpath, dirs, files in os.walk(dir_path): print(dirpath) print(files) # 结果返回当前路径、当前路径下文件夹,并以列表返回所有文件
建议直接将需要合并的pdf放在一个文件夹,这样就无需再对文件后缀进行判断,包装成函数后如下:
def GetFileName(dir_path): file_list = [os.path.join(dirpath, filesname) \ for dirpath, dirs, files in os.walk(dir_path) \ for filesname in files] return file_list
调用该函数的结果
现在建立合并PDF的函数
def MergePDF(dir_path, file_name): # 实例化写入对象 output = PdfFileWriter() outputPages = 0 # 调用上一个函数获取全部文件的绝对路径 file_list = GetFileName(dir_path) for pdf_file in file_list: print("文件:%s" % pdf_file.split('\\')[-1], end=' ') # 读取PDF文件 input = PdfFileReader(open(pdf_file, "rb")) # 获得源PDF文件中页面总数 pageCount = input.getNumPages() outputPages += pageCount print("页数:%d" % pageCount) # 分别将page添加到输出output中 for iPage in range(pageCount): output.addPage(input.getPage(iPage)) print("\n合并后的总页数:%d" % outputPages) # 写入到目标PDF文件 print("PDF文件正在合并,请稍等......") with open(os.path.join(dir_path, file_name), "wb") as outputfile: # 注意这里的写法和正常的上下文文件写入是相反的 output.write(outputfile) print("PDF文件合并完成")
可以看到虽然待合并的PDF文件比较大,但是依旧快速的合并成功!最后附上完整代码,只需将代码中PDF的路径和文件名修改即可使用!
import os from PyPDF2 import PdfFileReader, PdfFileWriter def GetFileName(dir_path): file_list = [os.path.join(dirpath, filesname) \ for dirpath, dirs, files in os.walk(dir_path) \ for filesname in files] return file_list def MergePDF(dir_path, file_name): output = PdfFileWriter() outputPages = 0 file_list = GetFileName(dir_path) for pdf_file in file_list: print("文件:%s" % pdf_file.split('\\')[-1], end=' ') # 读取PDF文件 input = PdfFileReader(open(pdf_file, "rb")) # 获得源PDF文件中页面总数 pageCount = input.getNumPages() outputPages += pageCount print("页数:%d" % pageCount) # 分别将page添加到输出output中 for iPage in range(pageCount): output.addPage(input.getPage(iPage)) print("\n合并后的总页数:%d" % outputPages) # 写入到目标PDF文件 print("PDF文件正在合并,请稍等......") with open(os.path.join(dir_path, file_name), "wb") as outputfile: # 注意这里的写法和正常的上下文文件写入是相反的 output.write(outputfile) print("PDF文件合并完成") if __name__ == '__main__': # 设置存放多个pdf文件的文件夹 dir_path = r'C:\Scientific Research\Knowladge\Ophthalmology\Chinese Ophthalmology' # 目标文件的名字 file_name = "中华眼科学(第3版)合并版.pdf"MergePDF(dir_path, file_name)
——热门课程推荐:
想从事业务型数据分析师,您可以点击>>>“数据分析师”了解课程详情;
想从事大数据分析师,您可以点击>>>“大数据就业”了解课程详情;
想成为人工智能工程师,您可以点击>>>“人工智能就业”了解课程详情;
想了解Python数据分析,您可以点击>>>“Python数据分析师”了解课程详情;
想咨询互联网运营,你可以点击>>>“互联网运营就业班”了解课程详情;
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
AI来了,数分人也可以很省力,今天给大家介绍7个AI+数据分析工具,建议收藏。 01酷表 EXCEL 网址:https://chatexcel.com/ 这是 ...
2024-12-26一个好的数据分析模型不仅能使分析具备条理性和逻辑性,而且还更具备结构化和体系化,并保证分析结果的有效性和准确性。好的数据 ...
2024-12-26当下,AI 的发展堪称狂飙猛进。从 ChatGPT 横空出世到各种大语言模型(LLM)接连上线,似乎每个人的朋友圈都在讨论 AI 会不会“ ...
2024-12-26数据分析师这个职业已经成为了职场中的“香饽饽”,无论是互联网公司还是传统行业,都离不开数据支持。想成为一名优秀的数据分析 ...
2024-12-26在数据驱动决策成为商业常态的今天,数据分析师这一职业正迎来前所未有的机遇与挑战。很多希望转行或初入职场的人士不禁询问:数 ...
2024-12-25数据分析师,这一近年来炙手可热的职业,吸引了大量求职者的注意。凭借在大数据时代中的关键作用,数据分析师不仅需要具备处理数 ...
2024-12-25在当今数字化变革的浪潮中,数据分析师这一职业正迎来前所未有的发展机遇。回想我自己初入数据分析行业时,那种既兴奋又略显谨慎 ...
2024-12-25在当今信息爆炸的时代,数据已经像空气一样无处不在,而数据分析则是解锁这些信息宝藏的钥匙。数据分析的过程就像是一次探险,从 ...
2024-12-25在职场上,拍脑袋做决策的时代早已过去。数据分析正在成为每个职场人的核心竞争力,不仅能帮你找到问题,还能提供解决方案,提升 ...
2024-12-24Excel是数据分析的重要工具,强大的内置功能使其成为许多分析师的首选。在日常工作中,启用Excel的数据分析工具库能够显著提升数 ...
2024-12-23在当今信息爆炸的时代,数据分析师如同一位现代社会的侦探,肩负着从海量数据中提炼出有价值信息的重任。在这个过程中,掌握一系 ...
2024-12-23在现代的职场中,制作吸引人的PPT已经成为展示信息的重要手段,而其中数据对比的有效呈现尤为关键。为了让数据在幻灯片上不仅准 ...
2024-12-23在信息泛滥的现代社会,数据分析师已成为企业决策过程中不可或缺的角色。他们的任务是从海量数据中提取有价值的洞察,帮助组织制 ...
2024-12-23在数据驱动时代,数据分析已成为各行各业的必需技能。无论是提升个人能力还是推动职业发展,选择一条适合自己的学习路线至关重要 ...
2024-12-23在准备数据分析师面试时,掌握高频考题及其解答是应对面试的关键。为了帮助大家轻松上岸,以下是10个高频考题及其详细解析,外加 ...
2024-12-20互联网数据分析师是一个热门且综合性的职业,他们通过数据挖掘和分析,为企业的业务决策和运营优化提供强有力的支持。尤其在如今 ...
2024-12-20在现代商业环境中,数据分析师是不可或缺的角色。他们的工作不仅仅是对数据进行深入分析,更是协助企业从复杂的数据信息中提炼出 ...
2024-12-20随着大数据时代的到来,数据驱动的决策方式开始受到越来越多企业的青睐。近年来,数据分析在人力资源管理中正在扮演着至关重要的 ...
2024-12-20在数据分析的世界里,表面上的技术操作只是“入门票”,而真正的高手则需要打破一些“看不见的墙”。这些“隐形天花板”限制了数 ...
2024-12-19在数据分析领域,尽管行业前景广阔、岗位需求旺盛,但实际的工作难度却远超很多人的想象。很多新手初入数据分析岗位时,常常被各 ...
2024-12-19