2017-04-11 2 views
3

Der Inhalt einer Datei ist wie folgt, und die Datei-Codierung ist utf-8:gelesenen Bytes Zeichenfolge aus der Datei in python3

cd232704-a46f-3d9d-97f6-67edb897d65f b'this Friday, Gerda Scheuers will be excited \xe2\x80\x94 but she\xe2\x80\x99s most excited about the merchandise the movie will bring.' 

Hier ist mein Code:

with open(file, 'r') as f_in: 
    for line in f_in: 
     tokens = line.split('\t') 
     print(tokens[1]) 

Ich möchte die richtige Antwort bekommen - "Diesen Freitag wird Gerda Scheuers begeistert sein - aber sie freut sich am meisten über die Merchandise, die der Film bringen wird."

print(b'\xe2\x80\x94'.decode('utf-8')) #convert into ASCII 

Aber ich kann nicht die Bytes aus einer Datei lesen. Wenn ich eine Datei mit Bytes öffne, muss ich die Zeile dekodieren, um sie zu teilen.

Antwort

2

Sie können ast.literal_eval verwenden, um die Bytes wörtlichen Bytes zu konvertieren:

Dann dekodieren String-Objekt zu erhalten:

>>> ast.literal_eval(r"b'excited \xe2\x80\x94 but she\xe2\x80\x99s'") 
b'excited \xe2\x80\x94 but she\xe2\x80\x99s' 
>>> ast.literal_eval(r"b'excited \xe2\x80\x94 but she\xe2\x80\x99s'").decode('utf-8') 
'excited — but she’s' 

with open(file, 'r') as f_in: 
    for line in f_in: 
     tokens = line.split('\t') 
     # if len(tokens) < 2: 
     # continue 
     bytes_part = ast.literal_eval(tokens[1]) 
     s = bytes_part.decode('utf-8') # Decode the bytes to convert to a string 
Verwandte Themen