2016-09-07 8 views
-3

Ich sah dies in einem Python 3 Tutorial, wie man eine Datei herunterladen kann und so sieht es aus.Warum sollte '\ n' statt ' n' verwendet werden?

from urllib import request 
import requests 


goog="http://realchart.finance.yahoo.com/table.csvs=GOOG&d=8&e=7&f=2016&g=d&a=7&b=19&c=2004&ignore=.csv" 
rp=request.urlopen(goog) 
s=rp.read() 

cp=str(s) 
m=cp.split('\\n') 
dest='goog.csv' 
fw=open(dest,'w') 
    for c in m: 
     fw.write(c+ '\n') 

fw.close() 
fr=open('goog.csv','r') 
k=fr.read() 
print(k) 

Warum wurde das verwendet?

split('\\n') 

Es stimmt, dass der Code nur richtig funktioniert, wenn Sie die doppelten Backslashes verwenden, aber warum?

+3

Vielleicht, weil die Datei einen tatsächlichen Backslash enthält, gefolgt von einem tatsächlichen Buchstaben 'n'? Hast du den Inhalt von 'cp' überprüft? –

+0

Ja, es enthält einen tatsächlichen Backslash gefolgt von 'n', aber was genau macht der doppelte Backslash? –

+0

Überprüfen Sie meine bearbeitete Antwort, ich habe ein Code-Snippet hinzugefügt. Der Sondercharakter muss geflüchtet sein, es wurde bereits von mir und Joaquim beantwortet. Wenn Sie nicht das erste "\" eingeben, sucht die Funktion nicht nach einem "String", sondern nach einem Sonderzeichen. –

Antwort

-1

<button onclick='window.alert("\n")'>alert not escaped</button> 
 
<button onclick='window.alert("\\n")'>alert escaped</button>

In einem String ist ein einzelner Schrägstrich ein sogenannter 'Escape' Charakter. Dies wird verwendet, um Sonderzeichen wie Tab (\ t) oder eine neue Zeile (\ n) einzufügen.

0

Der Backslash ist ein Sonderzeichen innerhalb von Strings, dessen Zweck es ist, Sonderzeichen in die Strings einzufügen, Sonderzeichen, die nicht auf eine natürliche Art und Weise geschrieben werden können, wenn überhaupt. Am häufigsten ist die Newline '\n'.

Da der Backslash jedoch speziell ist, wie macht man einen String mit einem tatsächlichen Backslash? Einfach: Verwenden Sie den Backslash, um sich selbst zu entkommen! Ein umgekehrter Schrägstrich wird in einen umgekehrten Schrägstrich übersetzt.

Im Kontext dieser Frage enthält der gesuchte Text einen umgekehrten Schrägstrich. Um diesen umgekehrten Schrägstrich zu finden, muss der doppelte Backslash verwendet werden.

Verwandte Themen