Python如何获取多行字符串的最后N行

3
例如
mstr = """Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur laoreet
Suspendisse a erat mauris. Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Praesent tempor dolor id tincidunt sagittis. 
Etiam eu massa in magna maximus gravida pulvinar in ante. 
Sed convallis venenatis risus. Mauris dapibus augue a arcu varius dignissim. 
Curabitur sapien odio, convallis non dictum eget, ornare quis urna. 
Ut cursus massa eget pellentesque varius"""

从上面的字符串中,我需要将最后N行获取到另一个变量中。

是否有任何内置的函数可用?或者有没有更有效的方法来实现这一点。


这个回答解决了你的问题吗?在读取Python文件的行时跳过前几行 - undefined
4个回答

8
使用简单的切片操作,调用 str.splitlines() 方法:
mstr.splitlines()[-n:]

上面的解决方案将返回这些行作为列表。如果您想要一个字符串,您还需要使用 str.join() 方法:
'\n'.join(mstr.splitlines()[-n:])

如果你的文本中没有包含它,如果你要将其与其他文本连接起来或者将其写入UNIX类操作系统的文件中,你可能也想添加最后一个换行符:
'\n'.join(mstr.splitlines()[-n:]) + '\n'

2
要将最后N行的字符串值赋给另一个变量,请使用以下代码:
new_mstr = "\n".join(mstr.splitlines()[-n:])

获取最后N行后,您需要使用join将其组装回由换行符分隔的字符串。

1
如果您希望以与输入相同的格式(即多行字符串)获取输出,请将join与已提供的答案一起添加。
'\n'.join(mstr.splitlines()[-n:]

0

这是最好的方法

os.linesep.join(str.split(os.linesep)[-n:])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接