资讯专栏INFORMATION COLUMN

Python实用技法第30篇:从字符串中去掉不需要的字符

yck / 2700人阅读

摘要:上一篇文章实用技法第篇用正则表达式处理字符下一篇文章实用技法第篇文本过滤和清理问题我们想在字符串的开始结尾或中间去掉不需要的字符,比如说空格符。解决方案方法可用来从字符串的开始和结尾处去掉字符。

上一篇文章: Python实用技法第29篇:用正则表达式处理Unicode字符
下一篇文章:Python实用技法第31篇:文本过滤和清理
 问题

我们想在字符串的开始、结尾或中间去掉不需要的字符,比如说空格符。

 解决方案

strip()方法可用来从字符串的开始和结尾处去掉字符。lstrip()和rstrip()可分别从左或从右侧开始执行去除字符的操作。默认情况下这些方法去除的是空格符,但也可以指定其他的字符。例如:

>>> # Whitespace stripping
>>> s = " hello world 
"
>>> s.strip()
"hello world"
>>> s.lstrip()
"hello world 
"
>>> s.rstrip()
" hello world"
>>>

>>> # Character stripping
>>> t = "-----hello====="
>>> t.lstrip("-")
"hello====="
>>> t.strip("-=")
"hello"
 讨论

当我们读取并整理数据以待稍后的处理时常常会用到这类strip()方法。例如,可以用它们来去掉空格、移除引号等。

需要注意的是,去除字符的操作并不会对位于字符串中间的任何文本起作用。例如:

>>> s = " hello    world     
"
>>> s = s.strip()
>>> s
"hello       world"
>>>

如果要对里面的空格执行某些操作,应该使用其他技巧,比如使用replace()方法或正则表达式替换。例如:

>>> s.replace(" ", "")
"helloworld"
>>> import re
>>> re.sub("s+", " ", s)
"hello world"
>>>

我们通常会遇到的情况是将去除字符的操作同某些迭代操作结合起来,比如说从文件中读取文本行。如果是这样的话,那就到了生成器表达式大显身手的时候了。例如:

with open(filename) as f:
    lines = (line.strip() for line in f)
    for line in lines:
        ...

这里,表达式lines = (line.strip() for line in f)的作用是完成数据的转换[1]。它很高效,因为这里并没有先将数据读取到任何形式的临时列表中。它只是创建一个迭代器,在所有产生出的文本行上都会执行strip操作。

对于更高级的strip操作,应该转而使用translate()方法。请参见下一节以获得进一步的细节。

上一篇文章: Python实用技法第29篇:用正则表达式处理Unicode字符
下一篇文章:Python实用技法第31篇:文本过滤和清理

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44127.html

相关文章

  • Python实用技法31:文本过滤和清理

    摘要:上一篇文章实用技法第篇从字符串中去掉不需要的字符下一篇文章实用技法第篇对齐文本字符串问题某些无聊的脚本小子在页面表单中填入了这样的文本,我们想以某种方式将其清理掉。讨论文本过滤和清理的一个主要问题就是运行时的性能。 上一篇文章:Python实用技法第30篇:从字符串中去掉不需要的字符下一篇文章:Python实用技法第32篇:对齐文本字符串  问题 某些无聊的脚本小子在Web页面表单中...

    Bryan 评论0 收藏0
  • Python实用技法29:用正则表达式处理Unicode字符

    摘要:上一篇文章实用技法第篇将文本统一表示为规范形式下一篇文章实用技法第篇从字符串中去掉不需要的字符需求 上一篇文章:Python实用技法第28篇:将Unicode文本统一表示为规范形式下一篇文章: Python实用技法第30篇:从字符串中去掉不需要的字符 1、需求

    lanffy 评论0 收藏0
  • Python实用技法32:对齐文本符串

    摘要:解决方案对于基本的字符串对齐要求,可以使用字符串的和方法。例如的好处之一是它并不是特定于字符串的。此外,可作用于任意类型的对象,比字符串的以及方法要更加通用。上一篇文章实用技法第篇文本过滤和清理下一篇文章实用技法第篇字符串连接及合并 上一篇文章:Python实用技法第31篇:文本过滤和清理下一篇文章:Python实用技法第33篇:字符串连接及合并  问题 我们需要以某种对齐方式将文本...

    leon 评论0 收藏0
  • Python实用技法33符串连接及合并

    摘要:上一篇文章实用技法第篇对齐文本字符串下一篇文章问题我们想将许多小字符串合并成一个大的字符串。示例如下对于不必要的字符串连接操作也要引起重视。有时候在技术上并非必需的时候,程序员们也会忘乎所以地使用字符串连接操作。 上一篇文章: Python实用技法第32篇:对齐文本字符串下一篇文章:  问题 我们想将许多小字符串合并成一个大的字符串。  解决方案 如果想要合并的字符串在一个序列或可迭代...

    JayChen 评论0 收藏0
  • Python实用技法21:在符串开头和结尾处做文本匹配

    摘要:上一篇文章实用技法第篇针对任意多的分隔符拆分字符串下一篇文章实用技法第篇利用通配符做字符串匹配需求 上一篇文章:Python实用技法第20篇:针对任意多的分隔符拆分字符串下一篇文章:Python实用技法第22篇:利用Shell通配符做字符串匹配 1、需求

    maxmin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<