[Linux-bruxelles] Pas d'écho non plus ... : (

Frederic Peters fpeters at entrouvert.com
Mar 28 Déc 15:57:42 CET 2004


Luc Viatour écrivait :

> Idem ici impossible de l'ouvrir via OOo, la situation empire!
> Je vais devoir renommer des centaines de fichiers raaahhhh!

En fait, c'est là qu'il faut tout de suite se dire, aargh, non, des
centaines, surtout ne pas le faire à la main, et chercher un peu s'il
n'existerait pas déjà quelque part un script qui ferait la conversion.

Je n'en ai pas trouvé un qui ne s'occupe que des noms de fichier, je
te propose donc cela:

#! /usr/bin/python

import sys
import os

for dt in os.walk(sys.argv[1]):
	d, ds, fs = dt
	for f in fs:
		f2 = os.path.join(d, f)
		try:
			unicode(f2, 'utf-8')
		except UnicodeDecodeError:
                        print "Conversion de %r", f2
			f3 = unicode(f2, 'iso-8859-1').encode('utf-8')
			os.rename(f2, f3)


Tu l'enregistres en toto.py puis python toto.py /repertoire/des/fichiers
et hop, ils devraient tous être convertis.

Je n'ai testé ce script que sur mon /tmp/ où j'avais tapé deux ou
trois fichiers à l'encodage invalide, je te déconseille de lancer ça
directement sur un vrai répertoire avec de vrais fichiers sensibles.

Et après coup, je ne sais pas ce que ça donnera sur les machines qui
ne sont pas en UTF-8; peut-être vaudrait-il mieux regarder à
l'interaction OOo/Nautilus; malheureusement ce n'est pas mon fort.


        Frédéric





Plus d'informations sur la liste de diffusion Linux-bruxelles