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

2018-03-29 23:35:54 +08:00
 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']
2657 次点击
所在节点    Python
9 条回复
wevsty
2018-03-29 23:40:49 +08:00
有空纠结怎么修改 splitlines 的功夫不如直接 split 自己写一个
zeq
2018-03-30 01:39:32 +08:00
我记得可以 open(something, "rU")
1iuh
2018-03-30 01:58:16 +08:00
不麻烦啊 [ "".join([line, "\r\n"]) for line in str1.split("\r\n")]
greenmoon55
2018-03-30 02:03:55 +08:00
自己写一个有啥难度嘛= =
Sylv
2018-03-30 07:52:59 +08:00
Monkey-patching
fanhaipeng0403
2018-03-30 10:14:56 +08:00
看源码 是不是个类, 继承下?
yanqing07
2018-03-30 10:25:51 +08:00
这个函数加参数 ture 不是保留换行符吗?
xpresslink
2018-03-30 13:24:49 +08:00
class StrMixin:
self.delimiter = ' \r\n'
def splitelines(self, s): return [k+self.delimiter for k in s.split(self.delimeter)]
todayzhou
2018-03-30 16:04:32 +08:00
谢谢各位!!

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

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

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

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

© 2021 V2EX