2009-03-26 38 views
11

Bất kỳ đề xuất nào về phương thức chuyển đổi .doc, .ppt và .xls thành văn bản thuần túy trên linux bằng python? Thực sự bất kỳ phương pháp chuyển đổi nào đều hữu ích. Tôi đã xem xét sử dụng Open Office nhưng, tôi muốn một giải pháp mà không yêu cầu phải cài đặt Open Office.python chuyển đổi tài liệu văn phòng microsoft sang văn bản thuần túy trên linux

+0

Tôi đã đi với một giải pháp dòng lệnh – Tim

Trả lời

9

Tôi muốn dùng giải pháp dòng lệnh (và sau đó sử dụng Python subprocess module để chạy các công cụ từ Python).

Convertors cho msword (catdoc), excel (xls2csv) và ppt (catppt) có thể được tìm thấy (theo mẫu nguồn) ở đây: http://vitus.wagner.pp.ru/software/catdoc/.

Không thể thực sự nhận xét về tính hữu ích của catppt nhưng catdoc và xls2csv hoạt động rất tốt!

Nhưng hãy chắc chắn tìm kiếm kho lưu trữ phân phối đầu tiên của bạn ... Trên ubuntu, ví dụ catdoc chỉ là một cách nhanh chóng để thoát.

+0

+1 không sử dụng định dạng văn phòng mở, giống như OP muốn. – Droogans

5

Công cụ thông thường để chuyển đổi tài liệu Microsoft Office sang HTML hoặc các định dạng khác là mswordview, từ đó đã được đổi tên thành vwWare.

Nếu bạn đang tìm kiếm một công cụ dòng lệnh, họ thực sự khuyên bạn sử dụng AbiWord để thực hiện việc chuyển đổi:

AbiWord --to=txt 

Nếu bạn đang tìm kiếm một thư viện, bắt đầu vào wvWare overview page. Họ cũng duy trì a list of libraries and tools which read MS Office documents.

1

Để xử lý bảng tính Excel xlwt là tốt. Nhưng nó sẽ không giúp được với các tệp .doc.ppt.

(Bạn có thể tôi cũng đã nghe nói về PyExcelerator. Xlwt là một ngã ba này và duy trì tốt hơn vì vậy tôi nghĩ rằng bạn muốn được tốt hơn với xlwt.)

1

Tại dòng lệnh, antiword hoặc wv làm việc rất độc đáo cho các tập tin .doc. (Không phải là giải pháp Python, nhưng chúng dễ cài đặt và nhanh chóng.)

0

Tôi đã có một số thành công trong việc sử dụng XSLT để xử lý các tệp văn phòng dựa trên XML vào một cái gì đó có thể sử dụng trong quá khứ. Nó không nhất thiết phải là giải pháp dựa trên python, nhưng nó hoàn thành công việc.

1

Cùng một vấn đề ở đây. Dưới đây là kịch bản đơn giản của tôi để chuyển đổi tất cả các tập tin doc trong dir 'docs /' sang dir 'txts /' bằng catdoc. Hy vọng nó sẽ giúp ai đó:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

import glob, re, os 
f = glob.glob('docs/*.doc') + glob.glob('docs/*.DOC') 

outDir = 'txts' 
if not os.path.exists(outDir): 
    os.makedirs(outDir) 
for i in f: 
    os.system("catdoc -w '%s' > '%s'" % 
       (i, outDir + '/' + re.sub(r'.*/([^.]+)\.doc', r'\1.txt', i, 
            flags=re.IGNORECASE))) 
+1

Haha ... + 1 để sử dụng python ... để sử dụng bash. Tốt công việc gắn bó với các yêu cầu của OP ... loại. ': D' – Droogans

+0

@Droogans: anh ta, những kịch bản nhanh chóng đa ngôn ngữ này thực sự mỉa mai. Tôi đã bắt đầu làm trong bash, các quy tắc để thay đổi tên tập tin đầu ra trở nên lạ, sau đó tôi chỉ cần đặt nó bên trong một kịch bản python. Dễ dàng hơn việc sử dụng mô-đun subprocess, đường ống, v.v. – neves

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