python lstrip小坑说明

    xiaoxiao2021-04-17  42

    假设有一个字符串 a = “/home/work/ooobcdefg” 现在想要删掉 “/home/work/” 这一部分 由于 “/home/work” 刚好在字符串 a 的最左边, 所以想到了用 a.lstrip(‘/home/work’), 实际运行结果如下:

    >>> a = '/home/work/ooobcdefg' >>> a.lstrip('/home/work/') 'bcdefg'

    奇怪的事情发生了, ‘work/’ 后面的 ooo 三个字符也被删掉了 后来上官网了解, 才明白 lstrip 实际是按照单个字符来删除的. 也就是说, 如果你传给他一个字符串, 那么它会从左到右挨个检查变量 a 的字符, 如果在你给的参数内, 则删除这个字符, 直到出现不符合条件的字符才停止.

    话说回来, 如果要实现开头说的这个需求, 有两个方法可以实现. 1. a.replace(‘/home/work/’, ”) 这个方法存在一定的风险, 因为它会把 a 字符串里所有的 ‘/home/work’ 都给替换成空内容, 也就是删除. 如果只是自己写小工具, 对输入数据有足够的了解, 也是可以用的. 2. re.sub(‘^/home/work’, ”, a) 这个需要用到正则表达式, 并且通过锚定的方法, 精确删除字符串开头的 ‘/home/work’, 万无一失 实验结果如下:

    >>> a.replace('/home/work', '') '/ooobcdefg' >>> re.sub('^/home/work', '', a) '/ooobcdefg'
    转载请注明原文地址: https://ju.6miu.com/read-674176.html

    最新回复(0)