@2018年12月24日
-
背景
由于工作性质,经常面对不同的问题,某些场景下SQL+Excel、常用办公软件不能处理,这时到网上找一些案例,自己动手用python处理。后续,借此博客记录比较典型的处理过程。
后续,陆续实际处理的问题,如
1. 合并PDF(https://blog.youkuaiyun.com/weixin_44230447/article/details/85231757)
2. 拆分PDF
3. 敏感字段MD5脱敏
4. 从非架构化的大文本文件中提取指定条件的记录 -
需求
上一个案例,为合并PDF。但工作中正好也遇到要将PDF拆分打散的情况。Python 3下实现此需求,将多页PDF文件,分成单页。 -
拆分PDF的python
'''# -*- coding:utf-8*-'''
import sys
import importlib
importlib.reload(sys)
import os
import os.path
from PyPDF2 import PdfFileReader, PdfFileWriter
import time
time1=time.time()
##########################拆分一个PDF文件,输出到同一个文件夹下########################
def split_pdf(infn):
# infn: 切分的pdf
pdf_input = PdfFileReader(open(infn, 'rb'))
page_count = pdf_input.getNumPages()
print("page_count: ",page_count)
# 进行切分
for num in range(0, page_count):
pdf_output = PdfFileWriter()
outfn_name = "".join(infn.split(".")[:-1]) + "_" + str(num+1) + ".pdf"
print("The out_file_name is ",outfn_name)
pdf_output.addPage(pdf_input.getPage(num))
pdf_output.write(open(outfn_name, 'wb'))
if __name__ == '__main__':
file_dir = r'D:\扫描文件\split_input/' # 待拆分PDF 所在文件夹
in_file_name=u"某某待拆分文件.pdf" # 待拆分PDF文件名称
print("this file is ",file_dir+in_file_name)
split_pdf(file_dir+in_file_name)
time2 = time.time()
print( u'总共耗时:' + str(time2 - time1) + 's')
- 使用注意事项
将要拆分的PDF文件,如某某待拆分文件.pdf,放到D:\扫描文件\split_input 中,拆分后的文件"某某待拆分文件_1.pdf"默认输出到D:\扫描文件\split_input\中。如指定不同的输出目录,建议修改第22行的outfn_name。