如何有效地替换字符串中的最后一行?

blu*_*lds 0 python

我有一个多行字符串,我想用不同的行替换字符串的最后一行.我如何最有效地做到这一点?

Mar*_*ers 6

在最后一个换行符上拆分并附加一个新行:

new = old.rstrip('\n').rsplit('\n', 1)[0] + '\nNew line to be added with line break included.'
Run Code Online (Sandbox Code Playgroud)

这首先删除最后一行之后的任何尾随换行符,在文本的最后一个换行符上拆分一次,在最后一行换行符之前取得所有内容,并将结果与​​新换行符和文本连接起来.

演示:

>>> old = '''The quick
... brown fox jumps
... over the lazy
... dog
... '''
>>> old.rstrip('\n').rsplit('\n', 1)[0] + '\nhorse and rider'
'The quick\nbrown fox jumps\nover the lazy\nhorse and rider'
Run Code Online (Sandbox Code Playgroud)

这假设您的线条由\n字符分隔; 在文本模式下读取文本文件可在任何平台上提供此类数据.

如果您正在处理具有不同行结尾的数据,请相应地进行调整.在这种情况下os.linesep可以有用.