问题: 想清除整个范围的字符,或者去掉音符

1、使用str.translate()

s = 'python\fis\tawesome\r\n'

# 第一步是清理空格,可以先建立一个小型的转换表,然后使用reanslate()方法

remap = {

ord('\t'): ' ',

ord('\f'): ' ',

ord('\r'): None

}

a = s.translate(remap)

a

Out[3]: 'python is awesome\n'

# 可以利用这种重新映射的思想进一步构建出更加庞大的转换表。例如:把所有的Unicode组合字符都去掉

import unicodedata

import sys

cmb_chrs = dict.fromkeys(c for c in range(sys.maxunicode) if unicodedata.combining(chr(c))) # combining()函数可对字符做检查,判断它是否为一个组合型字符

b = unicodedata.normalize('NFD', a) # NFC表示字符应该是全组成的(即,如果可能的话就使用单个代码点);NFD表示应该是使用组合字符,每个字符应该是能完全分解开的。

b

Out[9]: 'python is awesome\n'

b.translate(cmb_chrs)

Out[10]: 'python is awesome\n'

2、另外一种清理文本的技术涉及I/O编码和解码函数:先对文本做初步清理,然后通过结合encode()和decode()操作来处理文本

a = 'python is awesome\n'

b = unicodedata.normalize('NFD', a) # 先对原始文本做分解操作

b.encode('ascii', 'ingore').decode('ascii') # 这种方法只有当我们最终的目标是ASCII文本时才有用

Out[11]: 'python is awesome\n'

总结:

1、对于简单的替换操作,用str.replace()通常是最快的方式--即使必须多次调用也是如此

例:

def clean_spaces():

s = s.replace('\r', '')

s = s.replace('\t', ' ')

s = s.replace('\f', ' ')

return s

2、如果需要做任何高级的操作,比如字符到字符的重映射或删除,那么translate()方法还是非常快的。

python str translate,str.translate() --文本过滤和处理相关推荐

  1. python str center_Python str方法总结

    1.返回第一个字母大写 S.capitalize(...) S.capitalize() -> string >>>a = 'shaw' >>> b = a. ...

  2. 来自python的【str字符串内置函数】

    字符串内置函数–capitalize 遇见非字符串后,下一个字符大写 str.capitalize():将字符串转换成大写,其他字母变成小写 capitalize 含义 capitalize(...) ...

  3. python中maketrans和translate函数

    maketrans是与translate配套使用的字符串函数,通过映射的方式返回内容. 目录 str.maketrans() ​str.translate() 最后我们拿一个例子来具体说明: str. ...

  4. python中什么是字符举例说明_第20p,什么是字符串?Python中的str

    原标题:第20p,什么是字符串?Python中的str 大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第20篇文章,第二阶段的课程:Python基础知识:Python的字符串(上 ...

  5. python unsupported operand type(s) for /: 'str' and 'str' can only concatenate str (not int) to s

    报错: TypeError: can only concatenate str (not "int") to str TypeError: unsupported operand ...

  6. PYTHON编码处理-str与Unicode的区别

    一篇关于STR和UNICODE的好文章 整理下python编码相关的内容 注意: 以下讨论为Python2.x版本, Py3k的待尝试 开始 用python处理中文时,读取文件或消息,http参数等等 ...

  7. python中的str与expr的一个区别例子

    我也说不清楚到底python中的str()与repr()到底有什么区别,下面的例子也许从某些方面能够说明: >>> hi = "Hello\nWorld" > ...

  8. python整数转换字符串_使用Python中的str()函数将整数值转换为字符串

    python整数转换字符串 Given an integer value and we have to convert the value to the string using str() func ...

  9. python基本数据类型——str

    一.字符串的创建 test = str() / "" test = str("licheng") / "licheng" 无参数,创建空字符 ...

  10. Python: 如何继承str/string?

    想搞一个对象继承自str,然后存一些额外信息用来标识这个字符串,然后理所当然地重写了__init__发现跪了: class newstring(str):def __init__(self, valu ...

最新文章

  1. WebSocket API简介
  2. mysql支持UUID做外键_多表外键下将普通的id主键更新为uuid主键
  3. Asp.Net基础 - 4.ASP.Net揭秘之Input版自增 + 5.ViewState初探
  4. python 列表生成式
  5. 使用 shell 脚本对 Linux 系统和进程资源进行监控
  6. Deep Compression阅读理解及Caffe源码修改
  7. AndroidStudio_安卓原生开发_自定义服务器Token验证_MD5加密方法---Android原生开发工作笔记156
  8. CSDN Blog 之七宗罪
  9. 手机各种JS语法,随时更新
  10. 字符串用法大全(源码解析,建议收藏!)
  11. 46、练习:输出指定目录下的所有文件名称
  12. html怎么让鼠标自动移动位置,手把手教你编作弊软件之 鼠标自动移动/点击
  13. 修改XP登陆界面教程
  14. UE4地编大型开放世界~制作烘焙全流程
  15. CSDN如何收藏别人的博客文章
  16. 终于搞懂Dijkstra算法了
  17. 【Web技术】前端水印实现方案
  18. GraalVM - 云原生时代的 Java 笔记
  19. 轮询查找连接电脑设备IP地址
  20. 了解USB-HID协议

热门文章

  1. 使用Gradle将JAR工件发布到Artifactory
  2. 如何用ThreadLocals射击自己
  3. 使用执行程序和ThreadPoolExecutor的Java线程池示例
  4. MyBatis教程– CRUD操作和映射关系–第2部分
  5. Java应用程序中的SQL注入
  6. 使您的Spring Security @Secured注释更干燥
  7. 为什么在2012/2013年我将在新的Enterprise Java项目中继续使用Spring *和* Java EE
  8. 线程故事:Web应用程序中的ThreadLocal
  9. jqGrid,REST,AJAX和Spring MVC集成
  10. MacBook Air的命令终端如何在root和普通用户之间切换