Python实现简单拆分PDF文件的方法

时间:2022-05-07 11:32:41 其他范文 收藏本文 下载本文

Python实现简单拆分PDF文件的方法((精选7篇))由网友“bilibili已坚定”投稿提供,下面是小编给各位读者分享的Python实现简单拆分PDF文件的方法,欢迎大家分享。

Python实现简单拆分PDF文件的方法

篇1:Python实现简单拆分PDF文件的方法

作者:willzhao 字体:[增加 减小] 类型:

这篇文章主要介绍了Python实现简单拆分PDF文件的方法,可实现将一个PDF文件拆分成指定份数的功能,涉及pyPdf模块的使用技巧,需要的朋友可以参考下

本文实例讲述了Python实现简单拆分PDF文件的方法,分享给大家供大家参考。具体如下:

依赖pyPdf处理PDF文件

切分pdf文件

使用方法:

1)将要切分的文件放在input_dir目录下

2)在configure.txt文件中设置要切分的份数(如要切分4份,则设置part_num=4)

3)执行程序

4)切分后的文件保存在output_dir目录下

5)运行日志写在pp_log.txt中

P.S. 本程序可以批量切割多个pdf文件

from pyPdf import PdfFileWriter, PdfFileReaderimport osimport timeimport sysdef 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 += 1if part_count == config_count: part_ye = ye + lst_yeelse: part_ye = yewrite_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): ut = PdfFileWriter for pp in range(part_count_ye, part_count_ye_end): out.addPage(pdf.getPage(pp)) us = 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: successn‘)pdf_main()

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

篇2:RC4文件加密的python实现方法

作者:1Byte 字体:[增加 减小] 类型:转载

这篇文章主要介绍了RC4文件加密的python实现方法,实例分析了RC4文件加密的原理与Python实现技巧,需要的朋友可以参考下

本文实例讲述了RC4文件加密的python实现方法,分享给大家供大家参考。具体分析如下:

基于RC4流加密算法,使用扩展的16*16的S盒,32字节密钥。

目前应该是比较安全的。

刚学习python,好不容易调通了。

而且在VC和python下各实现了一遍,两个平台能够互相加解密,很有成就感的说。

下面是python3.0中的实现,在2.x下需要稍加修改。

# for python 3.0# from 李勃import struct,sys,os,binascii“”“ RC4加密算法 16*16 S盒 加密单元:short”“”def RC4(pkey,keylen,pin,dlen): N=65536 S = list(range(N)) j = 0 for i in range(N): j = (j + S[i] + pkey[i%keylen])%N temp = S[i] S[i] = S[j] S[j] = temp i = j = 0 pout= b‘‘ for x in range(dlen): i = i+1 j = (j + S[i])%N temp = S[i] S[i] = S[j] S[j] = temp pout += struct.pack(‘H‘,pin[x]^S[(S[i]+S[j])%N]) return(pout)# bytes->shortdef Coding(data): if(len(data)%2): data+=b‘‘ dlen = len(data)//2 return(struct.unpack(str(dlen)+‘H‘,data))# short->bytesdef unCoding(data): d=b‘‘ for i in range(len(data)): d += struct.pack(‘H‘,data[i]) return(d)#产生32字节密钥def CreatKey(Keyt): pl = len(Keyt) Key=b‘‘ r=0 for i in range(32): k=(Keyt[r%pl]+i)%256 Key+= struct.pack(‘B‘,k) r+=1 return Key#更新密钥def UpdataKey(Keyt): Key = unCoding(Keyt) #循环左移 Key = Key[1:] + struct.pack(‘B‘,Key[0]) tem=0 #求和 for i in range(len(Key)): tem += Key[i]; Keyo=b‘‘ #Xor for i in range(len(Key)): Keyo += struct.pack(‘B‘,(Key[i]^tem)%256) tem += Keyo[i]>>3 tem = tem % 256 return(Coding(Keyo))if __name__ == ‘__main__‘: #获得输入文件 if len(sys.argv)==1: filename = input(‘源文件: ‘) else: filename = sys.argv[1] try: fin = open(filename,‘rb‘) except: print(‘打开文件失败!‘) input() sys.exit() print(filename) #打开输出文件 if filename[-4:]==‘.RC4‘: eID = 1 key=input(‘输入解密密钥: ‘).encode() filename = filename[:-4] else: eID = 2 key=input(‘输入加密密钥: ‘).encode() filename = filename+‘.RC4‘ key = Coding(CreatKey(key)) key = UpdataKey(key) #处理重名 while os.path.exists(ofilename): filename = os.path.dirname(ofilename)+ ‘副本 ‘+ os.path.basename(ofilename) fout = open(ofilename,‘wb‘) print(ofilename) #解密 if eID==1: #读文件长度 filelen = struct.unpack(‘I‘,fin.read(4))[0] print(‘FlieLen =‘,filelen,‘n......‘) while 1:#读块大小ps= fin.read(2)if not ps: #文件结束 breakpacksize = struct.unpack(‘H‘,ps)[0]#读数据dd=fin.read(packsize)#解密dd=Coding(dd)x = RC4(key,len(key),dd,len(dd))key = UpdataKey(key)#crccrc = struct.unpack(‘I‘,fin.read(4))[0]if binascii.crc32(x)!=crc: print(‘CRC32校验错误!‘,crc,binascii.crc32(x)) input() sys.exit()fout.write(x) #裁剪末尾填充位 fout.truncate(filelen) #加密 elif eID==2: #获得文件长度 fin.seek(0,2) filelen = fin.tell() print(‘FlieLen =‘,filelen,‘n......‘) fin.seek(0,0) fout.write(struct.pack(‘I‘,filelen)) while 1:#读数据dd=fin.read(65534)if not dd: #文件结束 break#末尾填充srl = len(dd)if srl%2: srl+=1; dd+=b‘‘#crccrc = struct.pack(‘I‘,binascii.crc32(dd))#加密数据dd=Coding(dd)x = RC4(key,len(key),dd,len(dd))key = UpdataKey(key)#写入文件fout.write(struct.pack(‘H‘,srl))fout.write(x)fout.write(crc) fin.close() fout.close() print(‘OK!‘) input()

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

篇3:Python实现分割文件及合并文件的方法

作者:Sephiroth 字体:[增加 减小] 类型:

这篇文章主要介绍了Python实现分割文件及合并文件的方法,涉及Python针对文件的分割与合并操作相关技巧,通过自定义函数split与join实现了文件的分割与合并操作,需要的朋友可以参考下

本文实例讲述了Python实现分割文件及合并文件的方法,分享给大家供大家参考。具体如下:

分割文件split.py如下:

#!/usr/bin/python########################################################################### split a file into a set of parts; join.py puts them back together;# this is a customizable version of the standard unix split command-line # utility; because it is written in Python, it also works on Windows and# can be easily modified; because it exports a function, its logic can # also be imported and reused in other applications;##########################################################################import sys, skilobytes = 1024megabytes = kilobytes * 1000chunksize = int(1.4 * megabytes) # default: roughly a floppydef split(fromfile, todir, chunksize=chunksize): if not os.path.exists(todir): # caller handles errors os.mkdir(todir) # make dir, read/write parts else: for fname in os.listdir(todir): # delete any existing files os.remove(os.path.join(todir, fname)) partnum = 0 input = open(fromfile, ‘rb‘) # use binary mode on Windows while 1: # eof=empty string from read chunk = input.read(chunksize) # get next part <= chunksize if not chunk: break partnum = partnum+1 filename = os.path.join(todir, (‘part%04d‘ % partnum)) fileobj = open(filename, ‘wb‘) fileobj.write(chunk) fileobj.close # or simply open().write() input.close() assert partnum <= 9999 # join sort fails if 5 digits return partnumif __name__ == ‘__main__‘: if len(sys.argv) == 2 and sys.argv[1] == ‘-help‘: print ‘Use: split.py [file-to-split target-dir [chunksize]]‘ else: if len(sys.argv) < 3: interactive = 1 fromfile = raw_input(‘File to be split? ‘) # input if clicked todir = raw_input(‘Directory to store part files? ‘) else: interactive = 0 fromfile, todir = sys.argv[1:3] # args in cmdline if len(sys.argv) == 4: chunksize = int(sys.argv[3]) absfrom, absto = map(os.path.abspath, [fromfile, todir]) print ‘Splitting‘, absfrom, ‘to‘, absto, ‘by‘, chunksize try: parts = split(fromfile, todir, chunksize) except: print ‘Error during split:‘ print sys.exc_info()[0], sys.exc_info()[1] else: print ‘Split finished:‘, parts, ‘parts are in‘, absto if interactive: raw_input(‘Press Enter key‘) # pause if clicked

合并文件join_file.py如下:

#!/usr/bin/python########################################################################### join all part files in a dir created by split.py, to recreate file. # This is roughly like a ‘cat fromdir/* > tofile‘ command on unix, but is # more portable and configurable, and exports the join operation as a # reusable function. Relies on sort order of file names: must be same # length. Could extend split/join to popup Tkinter file selectors.##########################################################################import os, sysreadsize = 1024def join(fromdir, tofile): utput = open(tofile, ‘wb‘) parts = os.listdir(fromdir) parts.sort() for filename in parts: filepath = os.path.join(fromdir, filename) fileobj = open(filepath, ‘rb‘) while 1: filebytes = fileobj.read(readsize) if not filebytes: break output.write(filebytes) fileobj.close() output.close()if __name__ == ‘__main__‘: if len(sys.argv) == 2 and sys.argv[1] == ‘-help‘: print ‘Use: join.py [from-dir-name to-file-name]‘ else: if len(sys.argv) != 3: interactive = 1 fromdir = raw_input(‘Directory containing part files? ‘) tofile = raw_input(‘Name of file to be recreated? ‘) else: interactive = 0 fromdir, tofile = sys.argv[1:] absfrom, absto = map(os.path.abspath, [fromdir, tofile]) print ‘Joining‘, absfrom, ‘to make‘, absto try: join(fromdir, tofile) except: print ‘Error joining files:‘ print sys.exc_info()[0], sys.exc_info()[1] else: print ‘Join complete: see‘, absto if interactive: raw_input(‘Press Enter key‘) # pause if clicked

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

篇4:python实现跨文件全局变量的方法

最近更 新

Python 初始化多维数组代码

python 图片验证码代码分享

Python中的并发编程实例

Python爬虫框架Scrapy安装使用步骤

python实现代码行数统计示例分享

python 测试实现方法

python re正则表达式模块(Regular Expres

python 中文字符串的处理实现代码

python 获取本机ip地址的两个方法

Cython 三分钟入门教程

热 点 排 行

Python入门教程 超详细1小时学会

python 中文乱码问题深入分析

比较详细Python正则表达式操作指

Python字符串的encode与decode研

Python open读写文件实现脚本

Python enumerate遍历数组示例应

Python 深入理解yield

Python+Django在windows下的开发

python 字符串split的用法分享

python 文件和路径操作函数小结

篇5:Python 文件操作实现代码

最近更 新

python操作日期和时间的方法

布同自制Python函数帮助查询小工具

python中getattr函数使用方法 getattr实现

python生成指定长度的随机数密码

python正则表达式re模块详解

python快速排序代码实例

python实现k均值算法示例(k均值聚类算法)

python实现探测socket和web服务示例

python 切片和range用法说明

python命令行参数sys.argv使用示例

热 点 排 行

Python入门教程 超详细1小时学会

python 中文乱码问题深入分析

比较详细Python正则表达式操作指

Python字符串的encode与decode研

Python open读写文件实现脚本

Python enumerate遍历数组示例应

Python 深入理解yield

Python+Django在windows下的开发

python 文件和路径操作函数小结

python 字符串split的用法分享

篇6:python复制文件代码实现

最近更 新

python利用elaphe制作二维条形码实现代码

python实现探测socket和web服务示例

python函数返回多个值的示例方法

Python中文编码那些事

python 图片验证码代码分享

树莓派中python获取GY-85九轴模块信息示例

python启动办公软件进程(word、excel、pp

学习python (2)

用python实现的去除win下文本文件头部BOM

python动态加载变量示例分享

热 点 排 行

Python入门教程 超详细1小时学会

python 中文乱码问题深入分析

比较详细Python正则表达式操作指

Python字符串的encode与decode研

Python open读写文件实现脚本

Python enumerate遍历数组示例应

Python 深入理解yield

Python+Django在windows下的开发

python 文件和路径操作函数小结

python 字符串split的用法分享

篇7:python实现文件快照加密保护的方法

作者:秋风秋雨 字体:[增加 减小] 类型:转载

这篇文章主要介绍了python实现文件快照加密保护的方法,涉及Python文件加密的技巧,可有效防止文件被篡改,需要的朋友可以参考下

本文实例讲述了python实现文件快照加密保护的方法,分享给大家供大家参考。具体如下:

这段代码可以对指定的目录进行扫描,包含子目录,对指定扩展名的文件进行SHA-1加密后存储在cvs文件,以防止文件被篡改

调用方法:python snapper.py > todayCheck.csv

# Hello, this is a script. written in Python. See www.pyhon.org## Snapper 1.2p## This script. will walk a directory (and its subdirectories) and compute# SHA (Secure Hash Algorithm) for specific files (according to their# extensions) and ouput a CSV file (suited for loading into a spreadsheet# editor,a database or simply comparing with diff or ExamDiff.).## You can redirect the output of this script. to a file.# eg. python snapper.py > todayCheck.csv## This script. can be usefull to check system files tampering.## This script. is public domain. Feel free to reuse it.# The author is:# Sebastien SAUVAGE# # sebsauvage.net## More quick & dirty scripts are available at sebsauvage.net/python/## Directory to scan and extensions are hardcoded below:directoryStart = r‘c:windows‘extensionList=[‘.exe‘,‘.dll‘,‘.ini‘,‘.ocx‘,‘.cpl‘,‘.vxd‘,‘.drv‘,‘.vbx‘,‘.com‘,‘.bat‘,‘.src‘, ‘.sys‘,‘.386‘,‘.acm‘,‘.ax‘, ‘.bpl‘,‘.bin‘,‘.cab‘,‘.olb‘,‘.mpd‘,‘.pdr‘,‘.jar‘]import os,string,sha,stat,sysdef snapper ( directoryStart , extensionList ) : os.path.walk( directoryStart, snapper_callback, extensionList )def snapper_callback ( extensionList , directory, files ) : sys.stderr.write(‘Scanning ‘+directory+‘n‘) for fileName in files: if os.path.isfile( os.path.join(directory,fileName) ) :if string.lower(os.path.splitext(fileName)[1]) in extensionList : filelist.append(fileSHA ( os.path.join(directory,fileName) ))def fileSHA ( filepath ) : sys.stderr.write(‘ Reading ‘+os.path.split(filepath)[1]+‘n‘) file = open(filepath,‘rb‘) digest = sha.new() data = file.read(65536) while len(data) != 0: digest.update(data) data = file.read(65536) file.close() return ‘“‘+filepath+‘”,‘+str(os.stat(filepath)[6])+‘,“‘+digest.hexdigest()+‘”‘sys.stderr.write(‘Snapper 1.1p - sebsauvage.net/python/n‘)filelist = []snapper( directoryStart , extensionList )sys.stderr.write(‘Sorting...n‘)filelist.sort()filelist.insert(0, ‘“File path”,“File size”,“SHA”‘ )sys.stderr.write(‘Printing...n‘)for line in filelist: print linesys.stderr.write(‘All done.n‘)

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

word 怎么将doc转成pdf格式

Excel表格文件转换

python使用正则表达式检测密码强度源码

Lua数据类型介绍

python基础教程之基本内置数据类型介绍

思维导图软件:XMIND简介

Python教学心得

Word 的使用技巧

网络云计算技术研究现状综述论文

Word 文档部件的使用

Python实现简单拆分PDF文件的方法
《Python实现简单拆分PDF文件的方法.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

【Python实现简单拆分PDF文件的方法(精选7篇)】相关文章:

申请生物博士 个人介绍 范文2022-08-12

教你如何写出完美的公司年度总结2023-03-20

ios个人总结学习2023-05-13

版本的意思, 版本的解释2022-08-23

申请国外大学简历2022-05-06

个人计划管理桌面软件2022-06-15

解决Word表格超出版面问题WODR综合2023-03-02

大数据架构师岗位的具体职责表述2023-06-09

企业网络安全管理系统开发建设论文2023-12-07

接触人事招聘,如何面试网络美工和PHP程序员?2023-03-01