python 根据关键字 切割pdf_Python实现简单拆分PDF文件的方法

本文介绍了使用Python的pyPdf库来实现根据配置的数量切割PDF文件的方法。代码读取configure.txt配置文件,检查part_num参数,并对input_dir/目录下的每个PDF文件进行切割,将结果保存到output_dir/目录下。每部分PDF文件根据配置数量平均分配或按剩余页数分配。切割过程的日志记录在pp_log.txt中。
摘要由CSDN通过智能技术生成

from pyPdf import PdfFileWriter, PdfFileReader

import os

import time

import sys

def part_pdf(input_file, output_file, config_count, f_w, now, file_name):

file1 = file(input_file, 'rb')

pdf = PdfFileReader(file1)

pdf_pages_len = len(pdf.pages)

if config_count <= pdf_pages_len:

ye = pdf_pages_len / config_count

lst_ye = pdf_pages_len % config_count

part_count = 0

part_count_ye = 0

for fen in range(config_count):

part_count += 1

if part_count == config_count:

part_ye = ye + lst_ye

else:

part_ye = ye

write_pdf(pdf, part_count_ye, part_count_ye+part_ye, fen, output_file)

part_count_ye += ye

else:

f_w.writelines('time: '+now+' file name: '+file_name+' status: part_num > pdf pages [error]\n')

sys.exit(1)

def write_pdf(pdf, part_count_ye, part_count_ye_end, fen, output_file):

out = PdfFileWriter()

for pp in range(part_count_ye, part_count_ye_end):

out.addPage(pdf.getPage(pp))

ous = file(output_file+'_'+str(fen+1)+'.pdf', 'wb')

out.write(ous)

ous.close()

def pdf_main():

f = open('configure.txt', 'r')

f_w = open('pp_log.txt', 'a')

now = time.strftime('%Y-%m-%d %H:%M:%S')

for i in f:

i_ = i.strip()

aa = i_.split('=')[1]

if i_.find('part_num=') != -1 and aa.isdigit():

config_count = int(aa)

else:

f_w.writelines('time: '+now+' status: part_num in configure.txt is error [error]\n')

sys.exit(1)

files = os.listdir('input_dir/')

for each in files:

input_file = 'input_dir/'+each

file_name = input_file[input_file.index('/'):input_file.index('.')]

output_file = 'output_dir/'+file_name

part_pdf(input_file, output_file, config_count, f_w, now, file_name)

f_w.writelines('time: '+now+' file name: '+file_name+' status: success\n')

pdf_main()

希望本文所述对大家的Python程序设计有所帮助。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值