2009-03-26 10 views
11

Des recommandations sur une méthode pour convertir .doc, .ppt et .xls en texte brut sur linux en utilisant python? Vraiment n'importe quelle méthode de conversion serait utile. J'ai déjà envisagé d'utiliser Open Office, mais je voudrais une solution qui ne nécessite pas d'installer Open Office.python convertir microsoft office docs en texte brut sur linux

+0

Je suis allé avec une solution de ligne de commande – Tim

Répondre

9

J'irais pour la ligne de commande-solution (et puis utiliser le Python subprocess module pour exécuter les outils de Python).

Convertors pour msword (catdoc), Excel (xls2csv) et ppt (catppt) se trouvent (sous forme de source) ici: http://vitus.wagner.pp.ru/software/catdoc/.

Impossible de commenter l'utilité de catppt mais catdoc et xls2csv fonctionnent très bien!

Mais assurez-vous d'abord d'effectuer une recherche dans vos dépôts de distributions ... Sur ubuntu, par exemple, catdoc est un moyen rapide de vous en débarrasser.

+0

+1 pour ne pas utiliser les formats de bureaux ouverts, tout comme l'OP voulait. – Droogans

5

L'outil habituel pour convertir des documents Microsoft Office au format HTML ou d'autres formats était mswordview, qui a depuis été renommé vwWare.

Si vous êtes à la recherche d'un outil de ligne de commande, ils recommandent en fait en utilisant AbiWord pour effectuer la conversion:

AbiWord --to=txt 

Si vous êtes à la recherche d'une bibliothèque, commencez le wvWare overview page. Ils maintiennent également a list of libraries and tools which read MS Office documents.

1

Pour traiter des feuilles de calcul Excel xlwt est bon. Mais cela n'aidera pas avec les fichiers .doc et .ppt.

(Vous avez sans doute également entendu parler de PyExcelerator. Xlwt est une fourchette de cela et mieux entretenu donc je pense que vous seriez mieux avec xlwt.)

1

Sur la ligne de commande, ou antiwordwv travail très bien pour les fichiers .doc. (Pas une solution Python, mais ils sont faciles à installer et rapides.)

0

J'ai réussi à utiliser XSLT pour traiter les fichiers de bureau XML en quelque chose de plus utilisable par le passé. Ce n'est pas forcément une solution basée sur python, mais elle fait le travail.

1

Même problème ici. Ci-dessous est mon script simple pour convertir tous les fichiers doc dans le répertoire 'docs /' en dir 'txts /' en utilisant catdoc. Je espère que ça va aider quelqu'un:

#!/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 pour utiliser python ... pour utiliser bash. Bon travail qui colle aux demandes de l'OP ... en quelque sorte. ': D' – Droogans

+0

@Droogans: il, lui, ces scripts rapides multilingues sont vraiment ironiques. J'ai commencé à faire dans bash, les règles pour changer le nom du fichier de sortie sont devenues bizarres, alors je l'ai juste mis dans un script python. Plus facile que d'utiliser un module de sous-processus, des tuyaux, etc. – neves

Questions connexes