2008-10-09 29 views
18

¿Es posible leer y escribir archivos de Word (2003 y 2007) en Python sin utilizar un objeto COM?
sé que puedo:Lectura/escritura de archivos de MS Word en Python

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

pero la Palabra lo leerá como un archivo HTML no es un archivo .doc nativa.

Respuesta

7

Miraría en IronPython que intrínsecamente tiene acceso a Windows/Office API porque se ejecuta en tiempo de ejecución .NET.

3

doc (Word 2003 en este caso) y docx (Word 2007) son formatos diferentes, donde este último suele ser solo un archivo de archivos xml e imagen. Me imagino que es muy posible escribir en archivos docx manipulando el contenido de esos archivos xml. Sin embargo, no veo cómo podría leer y escribir en un archivo de doc sin algún tipo de interfaz de componente COM.

38

Consulte python-docx, su documentación oficial está disponible here.

Esto me ha funcionado muy bien.

+0

pesar de ser compatible formato .doc, he intentado, pero que arroja me un ValueError 'ValueError: archivo '' no es un archivo de Word, el tipo de contenido es 'application/vnd.openxmlformats-officedocument.themeManager + xml' – Shashank

+0

Es llamado python-docx no python-doc, entonces no. :) – Damian

6

Si sólo lo lea, es simplest utilizar el comando linux soffice para convertirlo en texto, y luego cargar el texto en Python:

+2

+1 No sé por qué esto tiene una votación negativa. Esta es a veces la única solución y, a veces, es suficiente. –

Cuestiones relacionadas