2008-10-09 71 views
18

Có thể đọc và ghi các tệp Word (2003 và 2007) bằng Python mà không cần sử dụng đối tượng COM không?
tôi biết rằng tôi có thể:Đọc/ghi các tệp MS Word trong Python

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

nhưng Word sẽ đọc nó như là một file HTML không phải là một tập tin .doc bản địa.

Trả lời

7

Tôi muốn xem xét IronPython bản chất có quyền truy cập vào API cửa sổ/văn phòng vì nó chạy trên thời gian chạy .NET.

3

doc (Word 2003 trong trường hợp này) và docx (Word 2007) là các định dạng khác nhau, nơi sau này thường chỉ là tệp lưu trữ của tệp xml và hình ảnh. Tôi sẽ tưởng tượng rằng nó là rất có thể để viết vào các tập tin docx bằng cách thao tác các nội dung của các tập tin xml. Tuy nhiên tôi không thấy làm thế nào bạn có thể đọc và ghi vào một tập tin doc mà không có một số loại giao diện thành phần COM.

38

Xem python-docx, tài liệu chính thức của tài liệu có sẵn here.

Điều này đã hoạt động rất tốt đối với tôi.

+0

Nhưng nó được hỗ trợ định dạng .doc, tôi đã cố gắng nhưng nó ném tôi một ValueError 'ValueError: file '' không phải là một tệp Word, kiểu nội dung là 'application/vnd.openxmlformats-officedocument.themeManager + xml' – Shashank

+0

Nó là được gọi là python-docx không python-doc, vì vậy không. :) – Damian

6

Nếu bạn chỉ gì để đọc, nó là simplest sử dụng lệnh linux soffice để chuyển đổi nó sang văn bản, và sau đó tải các đoạn text vào python:

+2

+1 Tôi không biết tại sao điều này lại bị bỏ phiếu tiêu cực. Đây đôi khi là giải pháp duy nhất và đôi khi nó đủ. –

Các vấn đề liên quan