54
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'

4

3 に答える 3

134

str.partition()文字列を改行で分割し、結果から最初の項目を取得するために使用します。

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

文字列を 1 つの場所で分割するだけでよい場合は、これが最も効率的な方法です。あなたも使うことができますstr.split()

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

次に、残りを破棄するため、最初の改行で一度だけ分割するようにメソッドに指示する必要があります。

.splitlines()または、次の方法を使用できます。

my_string.splitlines()[0]

ただし、これは入力文字列の改行ごとに個別の文字列を作成する必要があるため、それほど効率的ではありません。

于 2012-08-06T17:46:25.320 に答える
5

readline は、ストリームと組み合わせて使用​​されます。readline の使用を主張する場合は、StringIO を使用できます。

from StringIO import StringIO

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

私はするだろう

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

またはする

import re
for line in re.split('\n', my_string):
    print line
于 2012-08-06T17:53:40.453 に答える
1

使用できますsplit()

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

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

lines = my_string.split('\n')
于 2012-08-06T17:47:47.670 に答える