1. 程式人生 > >用Python將word檔案轉換成html

用Python將word檔案轉換成html

最近公司一個客戶大大購買了一堆醫療健康方面的科普文章,希望能放到我們正在開發的健康檔案管理軟體上。客戶大大說,要智慧推送!要掌握節奏!要深度學習!要讓使用者留戀網站無法自拔!

話說符合以上特點的我也只能聯想到某榴了。

當然,萬里長征的第一步是把文章匯入我們的資料庫。專案使用的是AWS的dynamoDB,是非關係型資料庫,所有內容都是以json的形式儲存的。而客戶大大購買來的文章,一共600多篇,要麼是word要麼是Adobe indesign的indd。找了一圈,沒有發現合適的應用可以把word或indd轉化成乾淨的html。所以我只能自己造輪子啦~聽說python很擅長文字處理,所以就是你了,python!這是我第一次用python寫專案,不符合規範的地方歡迎大神提點。

太長不看

用逆天的python 模組mammoth和docx 處理你的word檔案;把indd批量轉化成pdf然後用layout_scanner轉化成html。

word批量轉化為html

1、 建立檔案結構並批量讀取檔案

在根目錄下建立幾個資料夾,用來放不同格式的檔案,我把所有要處理的word檔案放在docfiles 這個子目錄裡。word.py裡寫轉化程式。

  1. ├── docfiles

  2. ├── imgs

  3. ├── inddfiles

  4. ├── output

  5. └── pdfs

  6. └── word.py

2、引入模組和申明檔案路徑

  1. import mammoth

  2. import mammoth.transforms

  3. import os

  4. from docx importDocument

  5. from bson import json_util

  6. import zipfile

  7. import json

  8. import unidecode

  9. import requests

  10. guidUrl ="https://my.phrplus.com/REST/guid"

  11. inputPath ='/Users/admin/cwell/parser/docfiles/'

  12. imgPath ="/Users/admin/cwell/parser/imgs/"

  13. outputFile ='/Users/admin/cwell/parser/output/output.json'

mammoth: 核心元件,用來做轉化工作

docx: 另一個做轉化工作的模組,用來補充mammoth

os: 用來在系統中讀取寫入檔案

zipfile: 用來解壓word文件以提取圖片

json: 用來把資料轉化成json

bson: 用來配置寫入json檔案

unicode:用來處理字元

requests:用來呼叫api

3、轉換單個檔案

  1. styleMap ="""

  2. p[style-name='Title'] => h1.hide

  3. p[style-name='Subhead 1'] => h3

  4. p[style-name='List Bullet'] => ul.first > li:fresh

  5. p[style-name='List Bullet 2'] => ul.second > li:fresh

  6. p[style-name='Hyperlink']=>a.link

  7. """

  8. def convert_image(image):

  9. return{

  10. "src":""

  11. }

  12. def parseFile(f):

  13.    document =Document(inputPath+f)

  14.    article ={"Title":document.core_properties.title,"Content":""}

  15. with open(inputPath+f,"rb")as docFile:

  16.        html = mammoth.convert_to_html(docFile,style_map=styleMap,convert_image=mammoth.images.img_element(convert_image))

  17.        decoded = unidecode.unidecode(html.value)

  18. ifnot article["Title"]:

  19. for para in document.paragraphs:

  20. if para.style.name =='Title':

  21. if para.text:

  22.                    article["Title"]= para.text

  23.    article["Content"]=decoded

  24. return article  

parseFile就是核心功能了。傳遞進來的引數f是檔名,和檔案路徑合在一起能夠幫我們準確定位要轉化的檔案。首先用docx找到文件的標題,並建立一個dictionary,裡面包含標題和內容。然後用mammoth轉化整個檔案。注意命令中要用到stylemap和convertimage。前者用來規定轉化規則:'style-name'是word裡的式樣名稱,用word開啟文件,點選任意一個元素可以檢視其式樣名稱;這裡規定標題轉化為h1,副標題轉化為h2等等。關於列表的轉化規則這裡就不詳細敘述了,具體可以參考下面的文章:

參考連結

  1. 相關推薦

    Pythonword檔案轉換html

    序最近公司一個客戶大大購買了一堆醫療健康方面的科普文章,希望能放到我們正在開發的健康檔案管理軟體

    通過pythonxml檔案轉換html檔案

    #資料型別的轉換 def main():    maxwidth = 100  #用於規範字段的長度    print_start()    count=0    while True:        try:            line =input()            if count == 0

    python Excel格式轉換HTML格式

    import codecs import pandas as pd xd = pd.ExcelFile('XXX.xls') pd.set_option('display.max_colwidth',1000)#設定列的寬度,以防止出現省略號 df = xd.parse() with codecs.op

    Windows下采PyInstallpy檔案轉換exe可執行檔案

    好不容易寫完的py檔案,想做成exe檔案,最開始選擇用py2exe,結果生成的exe遇到兩個問題, 1. py程式裡print 的資訊,cmd中執行tool後並沒有顯示在螢幕上; 2. 呼叫dll介面,執行py檔案時是阻塞等待的,結果cmd中執行exe時,tool很快先返回

    CHM檔案轉換html檔案jdk幫助文件加入到eclipse中,jdk1.8中文幫助文件下載

    一、將CHM檔案轉換成html檔案 1.下載相關的CHM檔案,如:我下載的是jdk1.8幫助文件(中文版),需要的自行下載,我已儲存到我的百度網盤了,連結在最下方。 注:個人建議下載谷歌版的,可以參考下方這張圖: 2.將whm檔案下載到D盤的jdkap

    Word檔案轉換HTML格式

    首先引用:Microsoft.Office.Interop.Word.dll 若果 是.net 4.0以上版本新增引用,如果不是4.0以上版本可能沒有這個,可以網上下載一個Microsoft.Office.Interop.Word.dll。 // 將word

    images2gif——python圖片列表轉換GIF動圖

    靜態圖畫的再漂亮,總是沒有動圖有感覺。 下載images2gif: https://pypi.python.org/pypi/images2gif 然後需要做點修改: (能解決images2gif typeerror must be string or buffe

    EXCEL的VBAPHPCMS的備份檔案轉換HTML的一次嘗試

    背景 有個PHPCMS的網站停了,但是網站的歷史文章又想要看看,網站停了以後,管理員發來了網站的所有資料。 分析 因為不會PHP,所有本地環境跑網站不優先考慮。 有MySQL資料庫檔案,但是不熟悉MySQL資料庫,也就不下載資料庫了。 有PHPCMS匯出的SQL檔案,但是不是標準的SQL檔案,不能用

    運用pythonjson檔案儲存csv檔案

    工具:  spyder ,codecs  ,pandas # -*- coding: utf-8 -*- """ Spyder Editor This is a temporary script file. """ #-*-coding:utf-8-*- import j

    python解析word檔案(段落篇(paragraph) 表格篇(table) 樣式篇(style))

    首先需要安裝相應的支援庫: 直接在命令列執行pip install python-docx 示例程式碼如下: import docxfrom docx import Document #匯入庫 path = "E:\\python_data\\1234.docx" #檔案路徑document = Doc

    Java使用PegDownmarkdown檔案html格式

    maven依賴: <dependency> <groupId>org.pegdown</groupId> <artifactId>pegdown</artifactId> <versio

    linux下pdf檔案轉換swf檔案

    用PHP用到了線上瀏覽pdf檔案的功能,js播放外掛需要同時將pdf檔案轉換成swf檔案兩者兼用才能達到效果。 安裝swftools 中文支援安裝: mkdir –p /usr/share/xpdf cd /usr/share/xpdf/ 下載中文支援及字型庫 wget ftp:/

    怎麼webm檔案轉換MP4格式在手機上播放

      由於各品牌不同型號的手機配置不同,手機支援的視訊格式也可能不同。比較常見的就是視訊格式轉換,即將手機不支援播放的格式視訊轉換成手機支援的格式視訊。手機最常用的格式是MP4、3GP、3G2等格式,所以我們只需將在電腦上下載的視訊轉換成這些適合手機播放的格式,就能隨時隨地觀看

    python.h5檔案的資料轉化成.pcd檔案

    import h5py import numpy as np import os import math from open3d import * filename = '/home/jp/project/pointnet/sem_seg/indoor3d_sem_seg_

    蘋果手機PDF檔案轉換HTML網頁的方法,簡單實用!

    有時為了工作需要我們要將PDF轉換成HTML網頁檔案,便於嵌入網頁中且可以提取PDF中的圖片,那麼,如何將PDF轉換成HTML格式呢?今天小編就來和大家介紹PDF轉HTML操作方法,希望可以幫助到大家。 1:首先開啟手機,在AppStore裡搜尋需要的檔案轉換工

    pythongif圖片轉換png圖片

    #將gif圖片轉成PNG圖片 im = Image.open('image.gif') def iter_frames(im): try: i= 0 while 1: im.seek(i)

    如何利用python.doc檔案轉換為.docx檔案

    前面寫了很多利用python-docx批量處理word檔案的教程,但是python-docx不支援doc格式,因此如何將doc檔案轉為docx檔案就是一個需要解決的問題,如果檔案少可以另存為,如何檔案多

    如何pdf檔案轉換excel

    2018年11月14日 11:38:18 weixin_40689822 閱讀數:4 標籤: 工具

    python3.6 py檔案轉換EXE檔案

    1、開啟控制檯,安裝python庫: pip install pyinstaller pip install pywin32 2、生成exe,會在py檔案同級目錄下新建一個dist資料夾,exe

    pythonpy檔案轉換為pyc

    什麼是pyc檔案 pyc是一種二進位制檔案,是由py檔案經過編譯後,生成的檔案,是一種byte code,py檔案變成pyc檔案後,載入的速度有所提高,而且pyc是一種跨平臺的位元組碼,是由python的虛擬機器來執行的,這個是類似於JAVA或者.NET的虛擬機器的概念。pyc的內容,是跟python的版本