Чтение / запись файлов MS Word на Python - PullRequest
19 голосов
/ 09 октября 2008

Можно ли читать и записывать файлы Word (2003 и 2007) на Python без использования COM-объекта?
Я знаю, что могу:

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

но Word будет читать его как файл HTML, а не как собственный файл .doc.

Ответы [ 4 ]

39 голосов
/ 21 октября 2011

См. python-docx , его официальная документация доступна здесь .

Это сработало очень хорошо для меня.

11 голосов
/ 08 мая 2015

Если вам нужно только то, что нужно прочитать, самое простое - использовать команду linux soffice, чтобы преобразовать ее в текст, а затем загрузить текст в python:

7 голосов
/ 09 октября 2008

Я бы посмотрел на IronPython , который по сути имеет доступ к API Windows / Office, потому что он работает в среде выполнения .NET.

3 голосов
/ 09 октября 2008

doc (в данном случае Word 2003) и docx (Word 2007) - это разные форматы, где последний обычно представляет собой просто архив XML и файлов изображений. Я полагаю, что можно записывать в файлы docx, манипулируя содержимым этих файлов xml. Однако я не вижу, как вы могли бы читать и записывать в файл документа без какого-либо типа интерфейса компонента COM.

...