如何稍微修改内置函数比如 splitlines()

2018 年 3 月 29 日
 todayzhou
我的需求是按行分割且保留换行符,只分割 \r\n 的换行,但是 splitlines() 函数默认还会分割 \r 或者 \n 的行。
的确可以通过 split 分割 \r\n,然后在去拼,但是感觉这样很繁琐,如果可以直接重载内置函数把 \r 和 \n 的匹配去掉,这样肯定是最便捷。
不知该如何处理,望指教~
要实现的效果:
str1 = '123\r\n456\r789\n000\r\n111'
结果:
['123\r\n', '456\r789\n000\r\n', '111']
3404 次点击
所在节点    Python
9 条回复
wevsty
2018 年 3 月 29 日
有空纠结怎么修改 splitlines 的功夫不如直接 split 自己写一个
zeq
2018 年 3 月 30 日
我记得可以 open(something, "rU")
1iuh
2018 年 3 月 30 日
不麻烦啊 [ "".join([line, "\r\n"]) for line in str1.split("\r\n")]
greenmoon55
2018 年 3 月 30 日
自己写一个有啥难度嘛= =
Sylv
2018 年 3 月 30 日
Monkey-patching
fanhaipeng0403
2018 年 3 月 30 日
看源码 是不是个类, 继承下?
yanqing07
2018 年 3 月 30 日
这个函数加参数 ture 不是保留换行符吗?
xpresslink
2018 年 3 月 30 日
class StrMixin:
self.delimiter = ' \r\n'
def splitelines(self, s): return [k+self.delimiter for k in s.split(self.delimeter)]
todayzhou
2018 年 3 月 30 日
谢谢各位!!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/442667

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX