python split string但保留分隔符

whi*_*cko 2 python string file

在python中我可以轻松地逐行读取文件到一个集合中,只需使用:

file = open("filename.txt", 'r')
content = set(file)
Run Code Online (Sandbox Code Playgroud)

集合中的每个元素都包含实际行和尾随换行符.

现在我有一个包含多行的字符串,我想通过正常的set操作与内容进行比较.

是否有任何方法可以将字符串转换为set相同的方式,例如,它还包含换行符?


编辑:

问题"在Python中,如何拆分字符串并保留分隔符?" 处理类似的问题,但答案并不容易采用其他用例.

import re
content = re.split("(\n)", string)
Run Code Online (Sandbox Code Playgroud)

没有预期的效果.

Blc*_*ght 6

str.splitlines()如果True作为可选keepends参数传递,则该方法完全符合您的要求.它将换行符保留在每行的末尾,如果字符串末尾没有换行符,则不会在最后一行添加换行符.

text = "foo\nbar\nbaz"
lines = text.splitlines(True)
print(lines) # prints ['foo\n', 'bar\n', 'baz']
Run Code Online (Sandbox Code Playgroud)