1. 程式人生 > 實用技巧 >python-docx的安裝和使用

python-docx的安裝和使用

python-docx的安裝和使用

1. 安裝python-docx

  1. python install python-docx
  2. 返回如下介面表示安裝成功

2. 基本功能使用

  1. 導包:from docx import Document
  2. 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. 典型檔案內容處理
    1)檔案處理中常用到python內建re包,因為re搜尋支援正則表示式
    2)re.search(查詢字串,被查詢內容) # 返回結果為True/False
  1. 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)