《Python编程快速上手》---项目记录(第13章)

13.2 项目:从多个 PDF 中合并选择的页面

import PyPDF2, os
# Get all the PDF filenames.
pdfFiles = []

'''第 1 步:找到所有 PDF 文件'''
for filename in os.listdir('.'):
#os.listdir('.')调用将返回当前工作目录中所有文件的列表。
	if filename.endswith('.pdf'):
	#将带有.pdf 扩展名的文件添加到 pdfFiles 中
		pdfFiles.append(filename)

pdfFiles.sort(key=str.lower)

#列表按照字典顺序排序,调用sort()时带有 key/str.lower 关键字参数
pdfWriter = PyPDF2.PdfFileWriter()

'''第 2 步:打开每个 PDF 文件'''
for filename in pdfFiles:
 pdfFileObj = open(filename, 'rb')
 pdfReader = PyPDF2.PdfFileReader(pdfFileObj)

 for pageNum in range(1, pdfReader.numPages):
 #'''第 3 步:添加每一页'''
  pageObj = pdfReader.getPage(pageNum)
  pdfWriter.addPage(pageObj)
	

'''第 4 步:保存结果'''
pdfOutput = open('allminutes.pdf', 'wb')
pdfWriter.write(pdfOutput)
pdfOutput.close()

关于Python的sort():https://www.cnblogs.com/ShaunChen/p/6205330.html

感觉很好用,(随后会解算法题)

类似程序的想法

1,从 PDF 文件中截取特定的页面

#功能:
#将watermark.pdf读入作为封面
#将meetingminutes2.pdf读入2~3页作为内容
import PyPDF2
pdf1File = open('watermark.pdf', 'rb')
pdf2File = open('meetingminutes.pdf', 'rb')
pdf1Reader = PyPDF2.PdfFileReader(pdf1File)
pdf2Reader = PyPDF2.PdfFileReader(pdf2File)
pdfWriter = PyPDF2.PdfFileWriter()
for pageNum in range(pdf1Reader.numPages):
	pageObj = pdf1Reader.getPage(pageNum)
	pdfWriter.addPage(pageObj)
for pageNum in range(2,4):
	pageObj = pdf2Reader.getPage(pageNum)
	pdfWriter.addPage(pageObj)
	
pdfOutputFile = open('test_one.pdf', 'wb')
pdfWriter.write(pdfOutputFile)
pdfOutputFile.close()
pdf1File.close()
pdf2File.close()

2,重新调整 PDF 文件中页面的次序

利用第1题的方法

3,创建一个 PDF 文件,只包含那些具有特定文本的页面。文本由 extractText()来确定。

<class 'PyPDF2.pdf.PdfFileWriter'>

从pdf中提取的文本类型不是字符串,所以无法通过string来筛选.

13.3 Word文档

有了 python-docx,Python 程序就能从.docx 文件中读取文本,像其他的字符串值一样使用它

这说明:.docx文件读取的是string类型.

13.6 实践项目

13.6.1 PDF 偏执狂

13.6.2 定制邀请函,保存为 Word 文档

13.6.3 暴力 PDF 口令破解程序

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值