utf2ansi.py - Konvertiert eine Textdatei von UTF-8

Code-Stücke können hier veröffentlicht werden.
Antworten
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Dienstag 27. Dezember 2005, 19:53

Stichworte: Unicode, Umwandeln

Beispielaufruf:

Code: Alles auswählen

utf2ansi.py hallowelt.txt

Code: Alles auswählen

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys
import os
import codecs

FROM_CODINGS = (
    "utf-8",
    sys.getfilesystemencoding(),
    "latin-1",
    "ascii",
    "cp1252",
)
TO_CODING = sys.getfilesystemencoding()


#----------------------------------------------------------------------
def main():
    for filename in sys.argv[1:]:

        tmp_filename = "%s.tmp" % filename
        del_filename = "%s.del" % filename

        f_in = file(filename, "rb")
        f_out = codecs.open(
           tmp_filename,
           'wb',
           encoding = TO_CODING
        )
        s_in = f_in.read()
        f_in.close()
        
        for coding in FROM_CODINGS:
            try:
                s_out = s_in.decode(coding)
                break
            except:
                pass

        f_out.write(s_out)
        f_out.close()

        os.rename(filename, del_filename)
        os.rename(tmp_filename, filename)
        os.remove(del_filename)


#----------------------------------------------------------------------
if __name__ == "__main__":
    main()
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten