python-docx的安裝和使用
阿新 • • 發佈:2020-08-06
python-docx的安裝和使用
1. 安裝python-docx
- python install python-docx
- 返回如下介面表示安裝成功
2. 基本功能使用
- 導包:
from docx import Document
- tmp檔案可以用excel開啟,開啟後選擇ASC碼或者utf-8
# 建立文件物件 document = Document(r'C:\Users\WM\Desktop\syntophone\python\python-docx/判斷題.docx') # 讀取文件中所有的段落列表 ps = document.paragraphs # 每個段落有兩個屬性:style和text ps_detail = [(x.text, x.style.name) for x in ps] with open('out.tmp', 'w+', encoding='utf-8') as fout: fout.write('') # 讀取段落並寫入一個檔案
- 典型檔案內容處理
1)檔案處理中常用到python內建re包,因為re搜尋支援正則表示式
2)re.search(查詢字串,被查詢內容) # 返回結果為True/False
- re.sub(被替換字串,替換字串,內容) # 返回替換後結果
4)下方程式碼為從技能鑑定題庫中提取出選擇題題幹
5)對於tmp檔案,使用excel開啟後,'\n'為換行,'\t'為同一行的下一列
6)因此,在下方程式中,通過判斷數字+'.'確認改行內容為題幹,新增'\n',表示進入下一個題,
7)下一個段落裡面如果沒有數字+'.',說明是本題的後續題乾和選項,字串拼接。對拼接後的字串做替換,括號內內容清空,防止大括號內內容被識別為'\t'導致進入下一列
8)[]內新增ABCD,表示只要包含以上內容,後面跟頓號,就替換為'\t'
# 選擇題題幹處理 with open('out.tmp', 'a+', encoding='utf-8') as fout: char1 = '' for p in ps_detail: if re.search('^\d+\. *', p[0]): fout.write(char1.strip()+'\n') char1 = p[0] char1 = re.sub('^\d+\. *', '\n', char1) char1 = re.sub('[ABCD]、', '\t', char1) char1 = re.sub('\(.*?\)', '()', char1) else: char1 += p[0] char1 = re.sub('[ABCD]、', '\t', char1) char1 = re.sub('\(.*?\)', '()', char1)