Fonction sxw2txt en python
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 !!!
