2016-12-12 1 views
0

Der Python-Code ist wie folgt. Ich versuche, die Daten aus einer Datei zu lesen. Aber wenn ich es drucke, bekomme ich die Ausgabe mit square bracket und escape char. Wenn ich nur den Inhalt drucke, den ich aus der Datendatei kopiere. Es zeigt normal. Das Ergebnis ist wie folgt: [u'\n\n\xefhello']Python Wie kann man den Text aus einer Datei ohne das Escape-Zeichen lesen?

Wie Sie dieses Problem beheben. Dies ist das Ergebnisfenster. Ich versuche, die square bracket zu entfernen, aber es funktioniert nicht. Und ich versuche, die Zeichenfolge von utf-8 zu kodieren, funktioniert auch nicht.

Und der Typ str, den ich aus der Datendatei gelesen habe, ist <type 'unicode'>.

20161212185023.bmp

from bs4 import BeautifulSoup 
import re 

f = open('sgsres.txt', 'r') 
content = f.read() 
cleantext = BeautifulSoup(content, "lxml").text 
cleantext = re.sub('[\[\]]', '', cleantext) 
print cleantext 

--- Update --- @Boris

ich neu schreiben den Code entsprechend Ihrer Antwort, aber die die Ausgabe ich so erhalten ist. Jede char-Ausgabe in einer Zeile und das Escape-Zeichen scheint immer noch als Rohtext auszugeben. 20161212193059.bmp

--- Update ---

Diese Frage fixiert ist, wenn ich die Zeichenfolge mit acsii und ignorieren den Fehler wie diese kodieren. text = text.encode('ascii',errors='ignore') Aber ich weiß immer noch nicht warum.

Antwort

1

Square brackets zeigen Sie an, dass Sie mit einem list arbeiten.

Was die string s, die in diesem list sind, ist es das, was Sie tun können:

from bs4 import BeautifulSoup 
import re 

f = open('sgsres.txt', 'r') 
content = f.read() 
cleantext = BeautifulSoup(content, "lxml").text 
for item in cleantext: 
    item = item.strip() 
    print item 
Verwandte Themen