Python实现简单拆分PDF文件的方法((精选7篇))由网友“bilibili已坚定”投稿提供,下面是小编给各位读者分享的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# 希望本文所述对大家的Python程序设计有所帮助, 【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