推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
todayzhou
V2EX  ›  Python

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

  •  
  •   todayzhou · Mar 29, 2018 · 4038 views
    This topic created in 3152 days ago, the information mentioned may be changed or developed.
    我的需求是按行分割且保留换行符,只分割 \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']
    9 replies  •  2018-03-30 16:04:32 +08:00
    wevsty
    wevsty
    Mar 29, 2018
    1
    有空纠结怎么修改 splitlines 的功夫不如直接 split 自己写一个
    zeq
    zeq
    Mar 30, 2018 via Android
    2
    我记得可以 open(something, "rU")
    1iuh
    1iuh
    Mar 30, 2018
    3
    不麻烦啊 [ "".join([line, "\r\n"]) for line in str1.split("\r\n")]
    greenmoon55
    greenmoon55
    Mar 30, 2018
    4
    自己写一个有啥难度嘛= =
    Sylv
    Sylv
    Mar 30, 2018 via iPhone
    5
    Monkey-patching
    fanhaipeng0403
    fanhaipeng0403
    Mar 30, 2018
    6
    看源码 是不是个类, 继承下?
    yanqing07
    yanqing07
    Mar 30, 2018
    7
    这个函数加参数 ture 不是保留换行符吗?
    xpresslink
    xpresslink
    Mar 30, 2018
    8
    class StrMixin:
    self.delimiter = ' \r\n'
    def splitelines(self, s): return [k+self.delimiter for k in s.split(self.delimeter)]
    todayzhou
    todayzhou
    OP
    Mar 30, 2018
    9
    谢谢各位!!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1895 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 01:13 · PVG 09:13 · LAX 17:13 · JFK 20:13
    ♥ Do have faith in what you're doing.