2008-12-17 8 views
6

thể trùng lặp:
Reading/Writing MS Word files in PythonCó thư viện python để chỉnh sửa các tệp doc msword không?

Tôi biết có một số thư viện để chỉnh sửa các file excel nhưng là có bất cứ điều gì để chỉnh sửa msword 97/2000/2003 file .doc trong python? Lý tưởng nhất là tôi muốn thực hiện một số thay đổi nhỏ đối với định dạng của văn bản dựa trên nội dung của văn bản. Một ví dụ thực sự tầm thường sẽ làm nổi bật mọi từ bắt đầu bằng vốn.

Trả lời

4

Tại sao không nhìn vào sử dụng python-uno để tải tài liệu vào OpenOffice và vận dụng nó bằng cách sử dụng giao diện UNO. Có một số mã ví dụ trên trang web tôi vừa liên kết để có thể giúp bạn bắt đầu.

+0

Có thể là tốt để nói cách truy cập XScriptContext, vì nó không đi kèm với Python. – Shule

1

Thư viện PyWin32 cho phép bạn truy cập vào các đối tượng COM từ Python, bao gồm tất cả các API Văn phòng COM khác nhau. Tôi sẽ không yêu cầu đó là dễ dàng để sử dụng nhưng nó hoạt động.

+0

Bất kỳ ý tưởng làm thế nào để làm điều đó trong Linux? – Shule

+0

Các tệp văn phòng mới hơn có thể được xử lý bằng mono, nhưng tôi chưa bao giờ thử điều đó. –

3

Nếu nền tảng độc lập là rất quan trọng, sau đó tôi khuyên bạn nên sử dụng API OpenOffice hoặc thông qua BASIC hoặc Python. OpenOffice cũng có thể chạy ở chế độ không đầu, không có GUI, vì vậy bạn có thể tự động hóa nó cho các công việc hàng loạt. Các liên kết này có thể hữu ích:

Đó chắc chắn là phức tạp hơn so nhập khẩu một mô-đun và làm một chuỗi thay thế, nhưng OpenOffice có lẽ người đọc .doc miễn phí tốt nhất, mà bạn có thể móc vào.

1

Mỗi this SO post, tôi phát hiện ra khoảng jXLS, sử dụng Apache POI. POI có nhiều thành phần phụ, bao gồm HWPF:

HWPF là cổng của định dạng tệp Microsoft Word 97 sang Java thuần túy. Nó hỗ trợ đọc, và hạn chế ghi khả năng. Vui lòng xem trang dự án HWPF để biết thêm thông tin. Thành phần này trong giai đoạn đầu của sự phát triển . Nó đã có thể đọc và viết các tệp đơn giản.

Vì đây là thư viện Java nên có thể sử dụng Jython để viết kịch bản. Tôi không biết khả năng viết tốt như thế nào, nhưng xin vui lòng gửi bình luận lại nếu nó giúp.