Gradzeichen in File schreiben

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    Ich sitze bereits mehrere Stunden um ein Gradzeichen ° in ein File zu schreiben.
    Habe bereits probiert:
    degree = u'\N{DEGREE SIGN}
    und das in den String einfügen. Jedoch funktioniert dies nicht. Habe auch dazu den #Coding=UTF-8 hinzugefügt.

    Könnt ihr mir helfen?

    :danke_ATDE:

    • Offizieller Beitrag

    ° hat in einem Textfile eigentlich nichts zu suchen, erschwert bloss die spätere Auswertung

    Code
    degree = u'\N{DEGREE SIGN}'
    with open("test.txt", "w") as f:
        f.write(degree.encode("utf-8"))

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Einmal editiert, zuletzt von dbv (20. April 2015 um 23:00)

  • Hallo,

    du hast zwei Möglichkeiten (plus die von dbv):

    1. du nimmst Pyhton 3, dann funktioniert das alles ootb:

    [code=php]#Code für Python 3
    >>> line = '15.6°C'
    >>> with open('p3_file.txt', 'w') as f:
    ... f.write(line)
    ...
    >>>[/php]

    Du nimmst unter Python 2.7 nicht `open` aus den build-ins, sondern `open` aus dem `codecs`-Modul:

    [code=php]#Code für Python 2
    >>> import codecs
    >>> line = u'15.6°C'
    >>> with codecs.open('p2_file.txt', 'w', 'utf-8') as f:
    ... f.write(line)
    ...
    >>>[/php]

    In beiden Fällen steht dann "15.6°C" in der Datei.

    Übrigens:

    Zitat

    Habe auch dazu den #Coding=UTF-8 hinzugefügt.


    hat nur was mit der Codierung des Quelltextes zu tun. Das hat keinen Einfluss darauf, was Python2 für einen Zeichensatz für die Datei nimmt - nämlich per Default ASCII. Außer, die nimmst `codes.open()` ;)

    Gruß, noisefloor

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!