Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I read the first line of a string? [duplicate]

Tags:

python

string

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

How can I store the first line of that (This is my first line,) into a separate string? I attempted to use .readline() from another similar question, however I get this error:

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

like image 313
user1447941 Avatar asked Aug 06 '12 17:08

user1447941


People also ask

How do you get the first two letters of a string?

Use the String. substring() method to get the first two characters of a string, e.g. const first2 = str. substring(0, 2); . The substring method will return a new string containing the first two characters of the original string.


2 Answers

Use str.partition() to split the string on a newline, and grab the first item from the result:

my_string.partition('\n')[0] 

This is the most efficient method if you only need to split a string in a single location. You could use str.split() too:

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

You do then need to tell the method to only split once, on the first newline, as we discard the rest.

Or you could use the .splitlines() method:

my_string.splitlines()[0] 

but this has to create separate strings for every newline in the input string so is not nearly as efficient.

like image 107
Martijn Pieters Avatar answered Sep 30 '22 13:09

Martijn Pieters


readline is used i conjuction with a stream. you could use StringIO if you insist on using readline:

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

I would do

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

or do

import re for line in re.split('\n', my_string):     print line 
like image 23
jassinm Avatar answered Sep 30 '22 13:09

jassinm