简单PDF分割小脚本
站里大佬写好的程序自己的环境运行不了,所以就用python写了个简单的小黑框脚本```
import sys
import os
from PyPDF2 import PdfFileReader,PdfFileWriter
def shuzhu(path,name,nums): #使用分割点页码进行分割
for j in range(0,len(nums)-1,1):
begin = int(nums)-1
end = int(nums)-1
splite(path,name,begin,end)
def configs(path,name,nums): #使用配置文件进行分割
for num in nums:
begin = int(num.split('-'))-1
end = int(num.split('-'))
if begin > end:
z = begin
begin = end
end = z
splite(path,name,begin,end)
def split_arv(path,name,num):#使用固定页数进行分割
long = path.getNumPages()
for i in range(0,long,num):
bengin = i
end = i+num
if end > long:
end = long
splite(path,name,bengin,end)
def splite(path,name,begin,end):#分割函数
pdf_writer = PdfFileWriter()
print("程序开始分割{}到{}".format(begin+1, end))
output = f'./{name}/{name}-{begin+1}-{end}.pdf'
for i in range(int(begin), int(end)):
page1 = path.getPage(i)
pdf_writer.addPage(page1)
with open(output, 'wb') as output_pdf:
pdf_writer.write(output_pdf)
print("程序分割完成{}到{}".format(begin+1, end))
if __name__=='__main__':
filename = sys.argv
named=filename.split('.')
os.mkdir(named)
read = open(filename,'rb')
pdffile = PdfFileReader(read)
if sys.argv == '-f' :# 使用配置文件configs 进行分割
config = sys.argv
split_nums = []
with open(config, 'r') as config_txt:
text_split = config_txt.readlines()
for text in text_split:
text=text.strip()
split_nums.append(text)
print("准备开始使用配置文件进行分割")
configs(pdffile, named, split_nums)
elif sys.argv == '-i':#使用固定间距进行分割
split_num = sys.argv
print("准备开始使用固定间距进行分割")
split_arv(pdffile, named, int(split_num))
elif sys.argv == '-s':
split_nums = []
txt = sys.argv
txt_num = txt.split(',')
print("准备开始使用分割点进行分割")
shuzhu(pdffile,named,txt_num)
else:
print("===========PDF_splite===========")
print("请输入合适得参数")
print("-f filename使用配置文件进行分割")
print("-i num 使用固定间距进行分割")
print("-s n1,n2,n3使用分割点进行分割")
print("==========by_liushui============")
read.close()
```
使用方法:
使用方法
1、使用配置文件进行分割
eg:
python pdf_splite.pypdf_name.pdf -f conf_name.txt
2、使用固定页数进行分割
eg:
python pdf_splite.py pdf_name.pdf -i conf_name.txt
3、使用指定分割点进行分割
eg:
python pdf_splite.py pdf_name.pdf -s 1,5,10,15,30
注意
1、配置文件内容需使用指定格式,如下:
1-5
10-15
20-30
2、使用指定分割点分割,必须以1开头,以总页数量结尾
3、文件夹下不能有与PDF同名文件夹
进来学习一下{:301_998:} 用作学习python就还行,只能等分,其实用性不高 看起来很棒啊~ hfxiang 发表于 2021-1-22 17:00
用作学习python就还行,只能等分,其实用性不高
使用配置文件(-f)和分割点分割(-s)不是等分哦,可以自己定义的。示例里随手输入数字是顺手啦:lol 谢谢分享,这个可以用在分享部分文件上 前来学习 感谢分享 谢谢分享 谢谢分享,看看看看 好东西,,漂亮
页:
[1]