Möchte eine Textdatei mit Python 3 ändern. Diese hat ein BOM: \ufeff
Gibt es keine Möglichkeit, das ich mich nicht um den BOM selbst kümmern muß? Also das Python alles selbst macht?!?
Also ich öffne die Datei, python liest den BOM und stellt entsprechendes encoding ein. Ich kann Zeilen ändern und speichern und Python speichert wieder mit BOM und dem passenden Encoding?!?
Text Datei mit BOM ändern...
@jens: AFAIK geht das nicht, man muss sich zumindest bei UTF-8 selber um BOMs kümmern. Da haben die allerdings eigentlich auch nichts zu suchen.
Für utf-8 gibt es doch utf-8-sig?
Code: Alles auswählen
>>> with open('something.txt', 'w', encoding='utf-8-sig') as f:
... f.write('something')
...
9
>>> with open('something.txt', 'rb') as f:
... content = f.read()
...
>>> content
b'\xef\xbb\xbfsomething'
>>> with open('something.txt', 'r', encoding='utf-8-sig') as f:
... content = f.read()
...
>>> content
'something'
@DasIch: Die Frage war ja ob man sich da selber drum kümmern muss, und das muss man. Man muss explizit angeben dass die Daten ein BOM haben oder das selbst weg machen wenn man nur UTF-8 angegeben hat.