Seite 1 von 1

Text Datei mit BOM ändern...

Verfasst: Montag 25. Januar 2016, 14:59
von jens
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?!?

Re: Text Datei mit BOM ändern...

Verfasst: Sonntag 24. April 2016, 14:58
von BlackJack
@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.

Re: Text Datei mit BOM ändern...

Verfasst: Sonntag 24. April 2016, 18:52
von DasIch
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'

Re: Text Datei mit BOM ändern...

Verfasst: Sonntag 24. April 2016, 19:02
von BlackJack
@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.