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)