日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

python mysql 遍历_Python自动化办公系列六(pdf文档处理)

發布時間:2024/1/23 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python mysql 遍历_Python自动化办公系列六(pdf文档处理) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PDF 表示 Portable Document Format,使用 .pdf 作為文件擴展名。雖然 PDF 支持許多功能,但現在我們專注于最常做的兩件事:從 PDF 讀取文本內容和從已有的文檔生成新的 PDF。主要涉及到三個類:PdfFileReader、PdfFileWriter、PageObject。
Python中用于處理PDF文檔的模塊是PyPDF2。可以直接通過 pip 指令去安裝:pip install PyPDF2 。 這個地方要注意,模塊名是區分大小寫的,除了 y 是小寫其他字母都是大寫。

1. PdfFileReader

PdfFileReader是 PyPDF2 提供的一個類,主要是通過方法和屬性來提供獲取pdf文件內容的相關功能。
使用PdfFileReader讀取pdf文件前需要先創建一個PdfFileReader的對象:

PdfFileReader(stream, strict = True,warndest = None,overwriteWarnings = True)
  • stream: File 對象或支持與 File 對象類似的標準讀取和查找方法的對象,也可以是表示 PDF 文件路徑的字符串。
  • strict(bool): 確定是否應該警告用戶所用的問題,也導致一些可糾正的問題是致命的,默認是 True
  • warndest : 記錄警告的目標(默認是 sys.stderr)
  • overwriteWarnings(bool):確定是否 warnings.py 用自定義實現覆蓋 Python 模塊(默認為 True)

下表是部分 PdfFileReader 對象的方法和屬性:

實例一:從PDF文件中提取文本

# 從PyPDF2模塊中導入PdfFileReader類 from PyPDF2 import PdfFileReader# 打開需要操作的pdf文件,獲取文件對象。因為pdf文件是二進制文件,所以打開的時候是 'rb' pdf_file = open('files/new.pdf', 'rb')# 創建pdf文件對應的PdfFileReader對象 pdf_reader = PdfFileReader(pdf_file)# 獲取當前pdf文件總頁數(這兒其實不需要,只是給大家看看) total_page = pdf_reader.getNumPages() # 結果是: 17# 獲取pdf文件的第一頁 page0 = pdf_reader.getPage(0)# 獲取第一頁中的文本內容 text_content = page0.extractText() print(text_content)

實例二:解密

# 從PyPDF2模塊中導入PdfFileReader類 from PyPDF2 import PdfFileReader# 創建PdfFileReader對象,并且讓它和指定的pdf文件進行關聯 # pdf_reader = PdfFileReader('files/MySQL.pdf') # 打開文件的時候可以直接給pdf文件路徑 pdf_reader = PdfFileReader(open('files/MySQL.pdf', 'rb')) # 打開文件的時候可以直接給文件對象# 是否加密 - 如果結果是True,表示已經加密,如果獲取頁面的時候程序會報錯 is_encrypted = pdf_reader.isEncrypted# 通過密碼解密, 這兒的 1234 是密碼 pdf_reader.decrypt('1234')# 獲取當前pdf文件的第一頁 page0 = pdf_reader.getPage(0)

2. PdfFileWriter

在 PyPDF2 中,與 PdfFileReader 對象相對的是 PdfFileWriter 對象,它可以創建一個新的 PDF 文件。但 PyPDF2 不能將任意文本寫入 PDF,就像 Python 可以寫入純文本文件那樣。PyPDF2 寫入 PDF 的能力,僅限于從其他 PDF 中拷貝頁面、旋轉頁面、重疊頁面和加密文件。模塊不允許直接編輯 PDF。必須創建一個新的 PDF,然后從已有的文檔拷貝內容。PdfFileWriter 的使用一般遵守以下方式:
1. 打開一個或多個已有的 PDF(源 PDF),得到 PdfFileReader 對象。
2. 創建一個新的 PdfFileWriter 對象。
3. 將頁面從 PdfFileReader 對象拷貝到 PdfFileWriter 對象中。
4. 最后,利用 PdfFileWriter 對象寫入輸出的 PDF。

創建一個PdfFileWriter 對象,只是在Python 中創建了一個代表PDF 文檔的值,這并沒有創建實際的PDF 文件,要實際生成文件,必須調用PdfFileWriter 對象的write()方法。

下表是部分 PdfFileWriter 對象的方法和屬性:

實例三:拷貝頁面

from PyPDF2 import PdfFileReader, PdfFileWriter# 創建兩個pdf文件對應的PdfFileReader對象 pdf_reader1 = PdfFileReader('files/file1.pdf') pdf_reader2 = PdfFileReader('files/file2.pdf')# 創建PdfFileWriter對象 writer = PdfFileWriter()# 遍歷將第一個pdf文件中的每一頁取出來 for page_num in range(pdf_reader1.getNumPages()):# 取出每一頁對應的PageObject對象page = pdf_reader1.getPage(page_num)# 將當前取出來的頁面添加到writer中writer.addPage(page)# 遍歷將第二個pdf文件中的每一頁取出來 for page_num in range(pdf_reader2.getNumPages()):# 取出每一頁對應的PageObject對象page = pdf_reader2.getPage(page_num)# 將當前取出來的頁面添加到writer中writer.addPage(page)# write(stream) - 將添加到此對象的頁面集合寫入 PDF 文件 ,這兒的stream必須是以寫的方式打開的文件對象 out_file = open('files/out.pdf', 'wb') writer.write(out_file) out_file.close()# 程序結束后,會在files下創建一個 out.pdf 文件,文件中的內容是 file1.pdf 和 file2.pdf 兩個文件中的所有內容

3. PageObject

從 PdfFileReader 對象中通過 getPage 方法得到頁面都是 PageObject 的對象。

下表是部分 PageObject 對象的屬性和方法:

實例四:旋轉頁面

# **實例三:拷貝頁面** from PyPDF2 import PdfFileReader, PdfFileWriter# 打開文件 # file_reader = PdfFileReader(open('files/MySQL.pdf', 'rb')) file_reader = PdfFileReader('files/MySQL.pdf')# 取第一頁 page0 = file_reader.getPage(0)# 旋轉90度 page0.rotateClockwise(90)# 創建 PdfFileWriter 對象 file_writer = PdfFileWriter()# 將第一頁添加到新文件中 file_writer.addPage(page0)# 保存新文件 file_writer.write(open('files/MySQL2.pdf', 'wb'))

PyPDF2 也可以將一頁的內容疊加到另一頁上,這可以用來在頁面上添加公司標志、時間戳或水印。利用 Python,很容易為多個文件添加水印,并且只針對程序指定的頁面添加。

實例五: 添加水印

from PyPDF2 import PdfFileReader, PdfFileWriter# 打開需要添加水印的文件 pdf_reader = PdfFileReader('files/MySQL.pdf')# 打開水印文件 water_reader = PdfFileReader('files/water.pdf')# 獲取需要添加水印的頁面(如果所有也都要添加水印就遍歷) page0 = pdf_reader.getPage(0)# 獲取水印頁 water_page = water_reader.getPage(0)# 合并 page0.mergePage(water_page)# 創建PdfFileWriter對象并且將已經添加水印的也添加到PdfFileWriter對象中 writer = PdfFileWriter() writer.addPage(page0)# 保存 writer.write(open('out/newMySQL.pdf', 'wb'))

實例六:加密PDF

PdfFileWriter 對象也可以為 PDF 文檔進行加密:

from PyPDF2 import PdfFileWriter, PdfFileReader# 打開需要加密的文件 file_reader = PdfFileReader('files/MySQL.pdf')# 創建PdfFileWriter對象 file_writer = PdfFileWriter()# 將原文件的內容全部添加到PdfFileWriter對象中 for page_num in range(file_reader.getNumPages()):file_writer.addPage(file_reader.getPage(page_num))# 加密,并且設置密碼為: 123456 file_writer.encrypt('123456')# 保存文件 file_writer.write(open('out/newMySQL.pdf', 'wb'))

參考書籍:《Python編程快速上手-讓繁瑣工作自動化》
我在b站上錄了Python自動化辦公的系列課程,感興趣可以看看: 嗶哩嗶哩 ( ゜- ゜)つロ 乾杯~ Bilibili

總結

以上是生活随笔為你收集整理的python mysql 遍历_Python自动化办公系列六(pdf文档处理)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日日干夜夜撸 | 精品人妻一区二区三区日产乱码 | 97小视频 | 亚洲aaaa级特黄毛片 | 国产成人精品视频ⅴa片软件竹菊 | 99久久精品国产一区二区成人 | 老牛影视一区二区三区 | 欧美放荡性医生videos | 久热免费 | 国产精品海角社区 | 好吊日免费视频 | 在线观看污污网站 | 动漫大乳美女 | 成人做爰免费视频免费看 | 日韩少妇毛片 | 亚欧美日韩 | 一区二区国产电影 | 天天操天天操天天干 | 伊人91在线 | 综综综综合网 | 欧美久久久一区二区三区 | 在线国产视频一区 | 男人天堂影院 | 性高跟鞋xxxxhd国产电影 | 欧美日韩国产成人在线 | 中日韩一级片 | 手机看片91| 一级久久久久久 | 好吊色视频988gao在线观看 | 亚洲性网 | 亚洲国产免费 | 污污网站在线播放 | 久草免费福利视频 | 欧美性视频在线播放 | 欧美福利网站 | 亚洲av永久无码精品一百度影院 | 国产一区二区不卡视频 | 中文字幕在线观看高清 | 日本欧美一区 | 奇米网久久 | 免费日韩一级片 | 在线麻豆av | 久久九| 天天干,天天操,天天射 | 麻豆国产一区二区 | 国精品一区二区 | 天降女子| cao国产| 国产美女精品视频 | 欧洲一级黄色片 | 国产三级av片 | 亚洲免费视频播放 | 天堂网在线观看 | 精品国产九九九 | 天堂二区 | 久久久一区二区 | 精国产品一区二区三区a片 国产精品第一 | 精品无码国产污污污免费网站 | 69视频污| 538国产视频 | 中文字幕av久久爽一区 | 在线免费观看a级片 | 国产精品欧美一区二区 | 福利视频在线看 | 亚洲午夜久久久久久久国产 | 国产91美女视频 | av大片网址 | 色播在线视频 | 日批视频免费播放 | 另类色综合| 妖精视频污 | 古代玷污糟蹋np高辣h文 | 丝袜一区二区三区 | 国产毛片一区二区三区 | 美女赤身免费网站 | 在线日本中文字幕 | 久久精品成人 | 日本真人做爰免费视频120秒 | a级一a一级在线观看 | 日本欧美激情 | 胖女人毛片 | 国产无玛 | 15—16女人毛片 | 亚洲欧美另类视频 | 欧美大片免费在线观看 | 欧美色婷婷 | 亚洲一区二区三区精品视频 | 日本中文在线播放 | 久草精品在线观看视频 | 日本一区二区在线免费观看 | 干爹你真棒插曲mv在线观看 | 一本免费视频 | 丰满人妻av一区二区三区 | 国产一二三在线视频 | 欧美天堂在线 | 西比尔在线观看完整视频高清 | 日韩女优中文字幕 | 91麻豆国产精品 | 欧美日韩高清免费 |