㈠ python Word文檔處理 上篇:python-docx
某天我收到一個需求:希望能夠用python對word文檔進行一些處理,比如更換一些文字以及添加批註。
簡單搜索後,我發現 python-docx 是一個處理docx文檔的常用python庫,因此我打算用它來進行進一步開發。
官方文檔 提供了一個簡單的示例
python-docx 將文檔抽象為document對象、paragraph對象以及run對象,提供了圍繞這些對象進行簡單處理的API
然而在文檔中並沒有出現關於批註操作的部分,我在搜尋 一些文章 後發現了在某個 issue 中提及了添加批註相關信息,然而還是沒有得到具體的解決辦法
docx文檔底層是由XML文件組成的
我們可以將一個 xx.docx 文件的後綴名改為 .rar 然後將其手動解壓,可以得到下面這些文件
在諸多文件當中主要用到的是 document.xml 文件,這里保存了文檔的內容
打開一份 document.xml 文件,拋開header、footer、table以及其他特殊項,去掉樣式等修飾項,一份樸素的docx文檔主要可以分為三個部分:paragraph、run、text
paragraph即段落,就是我們在word當中看到的一段。text即文本,就是真實的內容。run比較抽象,我們可以將其理解為片段,即語句的切分。
為了更好地理解run是什麼,打開一篇word文檔定位其中一句話
讓我們看看這篇文檔解壓之後的 document.xml 文件中對應的部分
OK,我們可以看到原本完整的一句話在word中被拆分成了許多個 <w:r> 標簽,這就是 run ,word切分 run 的規則很多,有的根據標點符號,有的根據中文分詞,句子中如果存在不同樣式的字詞也會單獨切分出來,因此我們很難預估一句話究竟會被分成幾個片段。
在issue中搜索comment關鍵字發現在一個 merge request 上已經給出了添加批註的解決方案,可以通過 paragraph 對象上的 add_comment 方法給一個段落添加批註
但這還是不符合我的需求,我的目標是精準添加到某個詞或者短語上
打開 這個貢獻者的源碼 進行研究
其實就是在P標簽內插入comment標簽引用,同時添加comment標簽到xx文件
同理我們可以在r標簽內插入comment標簽引用,同時添加comment標簽到xx文件,這樣就能實現給特定詞添加批註的需求了
㈡ 怎麼查看Python api文檔
Python api文檔查看:http://www.apiref.com/python-zh/index.html
㈢ 【Python中常用的庫系列】——操作url的模塊urlparse 模塊
文章目錄
一、功能介紹
二、功能介紹
1.`urlparse.urlparse`
2.`urlparse.urlsplit`
3.`urlparse.urljoin`
一、功能介紹
官方文檔 :http://docs.python.org/library/urlparse.html
作用:urlparse模塊主要是用於解析url中的參數 對url按照一定格式進行 拆分或拼接
注意:urlparse 模塊在 python 3.0 中 已經改名為 urllib.parse
二、功能介紹
1.urlparse.urlparse
1.1 獲取ParseResult對象
將url分為6個部分,返回一個包含6個字元串的元組:協議、位置、路徑、參數、查詢、片段。
舉例:
import urlparse
url_change = urlparse.urlparse('https://i.cnblogs.com/EditPosts.aspx?opt=1')
print url_change
'''
輸出結果:
ParseResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', params='', query='opt=1', fragment='')
'''
scheme 是協議
netloc 是域名伺服器
path 相對路徑
params是參數
query是查詢的條件
fragment是片段
1.2獲取結果的某一項
import urlparse
url_change = urlparse.urlparse('https://i.cnblogs.com/EditPosts.aspx?opt=1')
print url_change.query # opt=1
print url_change.scheme # https
1.3獲取結果的某一項,用字典或元組展示
import urlparse
url_change = urlparse.urlparse('https://i.cnblogs.com/EditPosts.aspx?opt=1')
print urlparse.parse_qs(url_change.query) # {'opt': ['1']}
print urlparse.parse_qsl(url_change.query) # [('opt', '1')]
2.urlparse.urlsplit
2.1獲取SplitResult對象
和urlparse差不多,將url分為5部分,返回一個包含5個字元串項目的元組:協議、位置、路徑、查詢、片段。
import urlparse
url_change = urlparse.urlsplit('https://i.cnblogs.com/EditPosts.aspx?opt=1')
print url_change
'''
輸出結果:
SplitResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', query='opt=1', fragment='')
'''
scheme 是協議
netloc 是域名伺服器
path 相對路徑
query是查詢的條件
fragment是片段
2.2獲取某一項
print url_change.scheme # https
3.urlparse.urljoin
將相對的地址組合成一個url,對於輸入沒有限制,開頭必須是http://或者https://,否則將不組合前面。
import urlparse
new_url = urlparse.urljoin('https://.com/ssss/','88888')
print new_url
'''
https://.com/ssss/88888
''' 注意 :如果輸入錯誤信息 如 new_url = urlparse.urljoin('122','88888') 並不會將兩者合並,而輸出後邊的鏈接,即『88888』
域名放在第一個參數,第二個參數為要和域名拼接的子鏈接
㈣ python自動化-pdf文檔操作
使用第三方庫
官方文檔:pymupdf.readthedocs.io/en/latest/
提取圖片的整體邏輯如下:
將每一頁轉換為一張張圖片
安裝pdf2image, github:github.com/Belval/pdf2…
安裝:
使用庫: github.com/2Dou/waterm…
步驟:
1.獲得一個帶水印pdf文件
1.1在圖片添加水印,圖片插入到word,word保存為pdf
1.2python處理:參考
github.com/2Dou/waterm…
mp.weixin.qq.com/s/_oJA6lbsd…
2.將水印pdf文件合並到源目標pdf文件的每一頁
法1,直接在word,插入文本框,旋轉,設置無邊框,注意設置背景透明,然後復制多個。導出為pdf。
法2,word本身自己的增加水印,設計-水印-自定義文字或圖片。缺點是只能是單個水印。
缺點是水印在內容pdf上方,如果設置過大,顏色不太透明,會遮擋內容。
解密:並不是破解,而是在已知密碼的情況下解密
作者:秦與商
鏈接:https://juejin.cn/post/7069582991982329893
Python、Java和Web前端都需要相應的編程資料來學習和提高編程能耐余亂力,以下是一些常用的編程資料:
Python編程資料:
《Python編毀運程從入門到實踐》
《Python核心編程》
《Python Cookbook》
Python官方文檔
Python編程網站(如Python官網、Python教程網等)
Java編程資料:
《Java編程思想》
《Effective Java》
《Head First Java》
Java官方文檔
Java編程網站(如Java官網、Java教程網等)
Web前端編程資料:
《JavaScript高級程序設計》
《CSS權威指南》
《HTML5權威指南》
MDN Web文檔
Web前端編程網站(昌檔如W3School、Bootstrap中文網等)
以上是一些常用的編程資料,但不限於此,還有很多其他的資料可以供大家學習和參考。