2008-10-09 3 views
18

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

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

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

ответ

7

Я бы посмотрел на IronPython, который по сути имеет доступ к окнам/офисным API, поскольку он работает на .NET runtime.

3

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

38

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

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

+0

Но она поддерживается формат .doc, я пытался, но он бросает me a ValueError `ValueError: file '' не является файлом Word, тип содержимого - 'application/vnd.openxmlformats-officedocument.themeManager + xml` – Shashank 2016-02-26 13:04:23

+0

Это python-docx не python-doc, так что нет. :) – Damian 2016-02-26 17:52:26

6

Если вы только что читать, это simplest использовать команду Linux Мои макросы, чтобы преобразовать его в текст, а затем загрузить текст в Python:

Смежные вопросы