2008-10-09 12 views
18

Est-il possible de lire et d'écrire des fichiers Word (2003 et 2007) en Python sans l'aide d'un objet COM?
Je sais que je peux:lecture/écriture de fichiers MS Word en Python

f = open('c:\file.doc', "w") 
f.write(text) 
f.close() 

mais Word lire comme un fichier HTML et non un fichier .doc natif.

Répondre

7

je regarderais en IronPython qui a intrinsèquement accès aux fenêtres/API de bureau car il fonctionne sur l'exécution .NET.

3

doc (Word 2003 dans ce cas) et docx (Word 2007) sont des formats différents, où celui-ci est généralement juste une archive de fichiers XML et de l'image. J'imagine qu'il est très possible d'écrire dans des fichiers docx en manipulant le contenu de ces fichiers xml. Cependant, je ne vois pas comment vous pouvez lire et écrire dans un fichier doc sans un type d'interface de composant COM.

38

Voir python-docx, sa documentation officielle est disponible here.

Cela a très bien fonctionné pour moi.

+0

Mais il est pris en charge le format .doc, je l'ai essayé, mais il jette moi un ValueError 'ValueError: fichier '' n'est pas un fichier Word, le type de contenu est 'application/vnd.openxmlformats-officedocument.themeManager + xml' – Shashank

+0

Il est appelé python-docx pas python-doc, donc non. :) – Damian

6

Si vous seulement ce qu'il faut lire, il est simplest d'utiliser la commande soffice linux pour le convertir en texte, puis charger le texte en python:

+2

+1 Je ne sais pas pourquoi cela obtient un vote négatif. C'est parfois la seule solution et parfois c'est suffisant. –

Questions connexes