如何读取字符串的第一行?

use*_*941 43 python string

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

...this is my fourth line!"""
Run Code Online (Sandbox Code Playgroud)

如何将that(This is my first line,)的第一行存储到单独的字符串中?我尝试使用.readline()另一个类似的问题,但是我得到了这个错误:

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

Mar*_*ers 98

拆分换行符并从结果中获取第一项:

my_string.partition('\n')[0]
Run Code Online (Sandbox Code Playgroud)

为了效率,我指示str.partition()只拆分第一个换行符,因为我们放弃了其余的换行符.

或者你可以使用的str.split()方法,而不是

my_string.split('\n', 1)[0]
Run Code Online (Sandbox Code Playgroud)


loc*_*jay 6

readline 与流结合使用。如果你坚持使用 readline,你可以使用 StringIO:

from StringIO import StringIO

sio = StringIO(my_string)
for sline in sio.readlines():
    print sline
Run Code Online (Sandbox Code Playgroud)

我会做

 for line in my_string.split('\n'):
        print line
Run Code Online (Sandbox Code Playgroud)

或者做

import re
for line in re.split('\n', my_string):
    print line
Run Code Online (Sandbox Code Playgroud)