Fonction sxw2txt en python

Tagged:

Les fichiers sxw sont les documents openoffice ... un word mais en mieux ;) mais ces fichiers sont avant tout des documents xml compréssés ... Si vous voulez les traiter avec d'autres programmes il faut trouver le contenu du document et pour ce faire il existe une magnifique ligne sed ...

http://mjr.towers.org.uk/comp/sxw2text

remplacer miniunz par unzip ça marche quand même.

Pour des besoins plus spécifique et pour le défit personnel, j'ai créé un script python qui fait la même chose mais en mieux :)

#!/usr/bin/env python
 
import os, re, sys, string
 
os.system("unzip -c %s content.xml > %s"%(sys.argv[1],sys.argv[2]))
fin = file("%s"%sys.argv[2],"r")
fout = file("%s"%sys.argv[3],"w")
fout.write(string.join(re.findall(r">([^<]*)<",fin.readlines()[3])))
fin.close()
fout.close()
os.system("rm %s"%sys.argv\[2])

On s'en sert comme ça :

sxw2txt nom_fichier.sxw fichier_tmp_134.tmp nom_fichier_sortie.txt

il n'y a trop rien de compliqué, si on dézip le fichier sxw on voit plein de fichiers, on selectionne content.xml et une expression régulière selectionne ce qu'il y a entre les balises <text:*>ici le texte</text> et voili ...

si ça peut servir !!!