2012-08-06 6 views
25
my_string = """This is my first line, 
this is my second line, and... 

...this is my fourth line!""" 

Wie kann ich die erste Zeile davon (This is my first line,) in einem separaten String speichern? Ich versuchte .readline() von einem anderen ähnlichen Frage zu verwenden, ich diesen Fehler jedoch erhalten:Wie lese ich die erste Zeile einer Zeichenfolge?

AttributeError: 'str' object has no attribute 'readline'

Antwort

72

Split die Linie auf Zeilenumbrüche und greifen auf das erste Element aus dem Ergebnis:

my_string.split('\n', 1)[0] 

Aus Gründen der Effizienz willen, Ich wies .split() an, nur auf dem ersten Newline zu teilen, während wir den Rest verwerfen.

oder man könnte die .splitlines() method statt

my_string.splitlines()[0] 
0

Sie können split() verwenden verwenden:

my_string = """This is my first line, 
this is my second line, and... 

...this is my fourth line!""" 

lines = my_string.split('\n') 
4

Readline- verwendet wird i Verbindung mit einem Strom. Sie könnten StringIO verwenden, wenn Sie über die Verwendung Readline- bestehen:

from StringIO import StringIO 

sio = StringIO(my_string) 
for sline in sio.readlines(): 
    print sline 

I

for line in my_string.split('\n'): 
     print line 

tun würde, oder tun

import re 
for line in re.split('\n', my_string): 
    print line 
Verwandte Themen