2016-10-06 2 views
0

Wenn ich an einer .txt-Datei auf einem Windows-Gerät arbeite ich muss speichern als entweder: ANSI, Unicode, Unicode Big Endian oder UTF-8. Wenn ich Python3 auf einem OSX-Gerät ausführen und versuchen, die TXT-Datei zu importieren und zu lesen, habe ich etwas entlang der Linien zu tun, von:Wie zu vermeiden Codierungsparameter beim Öffnen der Datei in Python3

with open('ships.txt', 'r', encoding='utf-8') as f: 
    for line in f.readlines(): 
     print(line) 

Gibt es ein bestimmtes Format soll ich die TXT-Datei zu verschlüsseln verwenden auf dem Windows-Gerät zu vermeiden, den Codierungsparameter beim Öffnen der Datei in Python hinzufügen?

+0

Sie können einen Codierer verwenden oder eine Stückliste zu den zu lesenden Dateien hinzufügen –

+0

@Ni. Hinzufügen einer Stückliste wird nicht helfen. 'open' verwendet sie nicht zur Kodierungserkennung. –

+0

@Mark Tolonen gestern Richtig, aber ich denke, vielleicht 'encodings' Bibliothek hat eine offene Funktion, die Stücklisten verwendet –

Antwort

0

Rufen Sie locale.getpreferredencoding(False) auf Ihrem OSX-Gerät. Dies ist die Standardcodierung, die zum Lesen einer Datei auf diesem Gerät verwendet wird. Speichern Sie diese Codierung unter Windows, und Sie müssen die Codierung auf Ihrem OSX-Gerät nicht angeben.

Aber wie die Zen of Python sagt, "Explicit ist besser als implizit." Da Sie die Codierung kennen, warum nicht angeben?

Verwandte Themen