脚本python以docx格式将彩色段落提取为xml格式

时间:2018-10-17 17:41:52

标签: python xml python-docx

我正在尝试在python中执行脚本,以便从docx中提取文本以放入XML格式。

具体来说,文本分为不同颜色(蓝色和黑色)的段落。

因此,您已经在文档中引入了元数据(时间,标题等),然后输入了以下文本:

Meta-data (date, title)
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (color black)
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy (color blue)
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (color black)
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy (color blue)

,依此类推。

所以我的脚本旨在提取每个段落的段落,并根据颜色(黑色为“ b”,蓝色为“ bl”)为每个段落分配栏位。

它似乎起作用,但是当我打开结果时什么都没有。

您能帮我解决一下吗?

import sys
import os   
from docx import Document
from docx.shared import RGBColor

dossierAOuvrir=sys.argv[1]
dossierAOuvrir=dossierAOuvrir+"/"
color="x"

for root, dirs, files in os.walk(dossierAOuvrir) :
    for file in files :
        docx=os.path.join(root,file)
        print("docx : ",docx)
        doc=Document(docx)
        fichierSortie=str(file)+".xml"
        sortie=open(fichierSortie,mode="w",encoding="utf-8")
        for p in doc.paragraphs:
            for run in p.runs :
                color="\t<i c=\""+str(run.font.color.rgb)+"\">"
            sortie.write(color) 
            sortie.write(str(p.text))
            sortie.write("</i>\n")
        sortie.close()
        print(str(file)," traité")

xml文件的结果:

:~/Documents/word$ python3 iwDocxToXML.py Kangourou
docx :  Kangourou/KANGOUROU_IW08.docx
KANGOUROU_IW08.docx  traité
docx :  Kangourou/KANGOUROU_IW05.docx
KANGOUROU_IW05.docx  traité
docx :  Kangourou/KANGOUROU_IW03.docx
KANGOUROU_IW03.docx  traité
docx :  Kangourou/KANGOUROU_IW04.docx
KANGOUROU_IW04.docx  traité
docx :  Kangourou/KANGOUROU_IW06.docx
KANGOUROU_IW06.docx  traité
docx :  Kangourou/KANGOUROU_IW09.docx
KANGOUROU_IW09.docx  traité
docx :  Kangourou/KANGOUROU_IW07.docx
KANGOUROU_IW07.docx  traité

在xml文件中

Erreur d’analyse XML : données incompréhensibles après l’élément de  
document
Emplacement : file:///home/k/Documents/Exp%C3%A9rimentation 
/KANGOUROU_IW03.docx.xml
Numéro de ligne 2, Colonne 2 :  <i c="None">tache : ALMONA</i>
 --------^^


fICHIER DOCX

Date :  Durée : 00:53:50
tÂCHE : aLMONA

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

段落之间总是有一个空行。

0 个答案:

没有答案