2017-03-21 5 views
0

Ich habe ein Skript erstellt, mit dem ich E-Mails von der Befehlszeile aus senden kann. Das Skript funktioniert gut; Ich möchte jedoch im Text der E-Mail Zeilenumbrüche ('\ n') hinzufügen können. Die Funktion raw_input setzt das '\ n' als wörtliche Eingabe. Wie komme ich hier zurecht?Erhalten von Newline-Eingaben empfangen von raw_input

Beispiel:

body = raw_input('Enter your message: ') 

>>>Enter your message: This\nShould\nbe\non\n6\nlines 
>>>print(body) 
'This\nShould\nbe\non\n6\nlines' 

Ich möchte es zeigen:

>>>Enter your message: This\nShould\nbe\non\n6\nlines 
>>>print(body) 
'This 
Should 
be 
on 
6 
lines' 
+0

Wie wäre es 'body.split ('\ n')'? –

+0

Escape-Sequenzen werden nur in String-Literalen im Quellcode und nicht in der Eingabe verarbeitet. Wenn Sie sie interpretieren müssen, müssen Sie Ihren eigenen Code schreiben, um das zu tun. – Barmar

Antwort

2

Es gibt nichts zu "bewahren", weil raw_input() wörtliche Eingabe liest, spielt es keine Escape-Sequenzen interpretieren. Wenn Sie \n wollen so behandelt, als Newline zu können, müssen Sie es selbst tun:

body = body.replace(r'\n', '\n') 
+0

Das hat super funktioniert! Vielen Dank! –

Verwandte Themen