[python] Kódování souborů
geon
geon na post.cz
Neděle Prosinec 18 20:27:49 CET 2005
Ahoj,
Tak začnu tím co jsem zplodil a pak se zeptám, jestli něco takového
existuje v lepší formě.
Chci "odhadnout" v jakém kodovani je uložen text v souborech. S pomocí
http://cthedot.de/encutils/ jsem vyvtořil následující funkci, která
odhaduje všechna možná kodování souborů v aktuálním adresáři:
# -*- coding: cp1250 -*-
def tryEncodings(text):
encodings = (
'ascii',
'iso-8859-2',
'cp1250',
'utf-8'
)
encoding = []
for e in encodings:
try:
text.decode(e) # fungovalo by i unicode(text,e)
except (UnicodeEncodeError, UnicodeDecodeError):
pass
else:
encoding.append(e)
return encoding
import os, sys
seznam =[jmeno for jmeno in os.listdir('.') if os.path.isfile(jmeno)]
for jmeno in seznam:
text=file(jmeno).read()
print jmeno, tryEncodings(text)
Díky ViNilovi již znám i unixový příkaz/program file, který umí to
samé, ale asi mnohem lépe. Zná někdo nějaký takový i pro windows - nebo
ještě lépe modul, který by to zvládal?
Díky
--
geon
Vyjímka je pravidlo. Rekurzivní.
Další informace o konferenci Python