如何在字符串中的行尾添加文本? - Python

时间:2012-01-12 04:13:32

标签: python

如何在python中的多行字符串中的一行末尾写一些文本而不知道切片编号?这是一个例子:

mystring="""
This is a string.
This is the second Line. #How to append to the end of this line, without slicing?
This is the third line."""

我希望我很清楚。

2 个答案:

答案 0 :(得分:6)

如果字符串相对较小,我会使用str.split('\n')将其分解为字符串列表。然后更改所需的字符串,并加入列表:

l = mystr.split('\n')
l[2] += ' extra text'
mystr = '\n'.join(l)

此外,如果您可以唯一地标识要追加的行的结束方式,则可以使用replace。例如,如果该行以x结尾,那么您可以执行

mystr.replace('x\n', 'x extra extra stuff\n')

答案 1 :(得分:1)

首先,字符串是不可变的,因此您必须构建一个新字符串。在splitlines对象上使用方法mystring(这样您就不必显式指定行尾char),然后将它们连接成一个新字符串,无论您希望如何。

>>> mystring = """
... a
... b
... c"""
>>> print mystring

a
b
c
>>> mystring_lines = mystring.splitlines()
>>> mystring_lines[2] += ' SPAM'
>>> print '\n'.join(mystring_lines)

a
b SPAM
c