Как я прочитал первую строку строки?
my_string = """This is my first line,
this is my second line, and...
...this is my fourth line!"""
Как я могу сохранить первую строку этого (This is my first line,
) в отдельной строке? Я попытался использовать .readline()
из другого аналогичного вопроса, однако я получаю эту ошибку:
AttributeError: 'str' object has no attribute 'readline'
Ответы
Ответ 1
Используйте str.partition()
чтобы разбить строку на новую строку и получить первый элемент из результата:
my_string.partition('\n')[0]
Это самый эффективный метод. Вы также можете использовать str.split()
:
my_string.split('\n', 1)[0]
Затем вам нужно указать, чтобы метод делился только один раз, на первой новой строке, поскольку мы отбрасываем остальные.
Или вы можете использовать метод .splitlines()
:
my_string.splitlines()[0]
но это должно создавать отдельные строки для каждой новой строки во входной строке, поэтому это не так эффективно.
Ответ 2
readline используется в сочетании с потоком. вы можете использовать StringIO, если вы настаиваете на использовании readline:
from StringIO import StringIO
sio = StringIO(my_string)
for sline in sio.readlines():
print sline
Я бы сделал
for line in my_string.split('\n'):
print line
или do
import re
for line in re.split('\n', my_string):
print line
Ответ 3
Вы можете использовать split()
:
my_string = """This is my first line,
this is my second line, and...
...this is my fourth line!"""
lines = my_string.split('\n')