python str translate,str.translate() --文本过滤和处理
问题: 想清除整个范围的字符,或者去掉音符
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() --文本过滤和处理相关推荐
- python str center_Python str方法总结
1.返回第一个字母大写 S.capitalize(...) S.capitalize() -> string >>>a = 'shaw' >>> b = a. ...
- 来自python的【str字符串内置函数】
字符串内置函数–capitalize 遇见非字符串后,下一个字符大写 str.capitalize():将字符串转换成大写,其他字母变成小写 capitalize 含义 capitalize(...) ...
- python中maketrans和translate函数
maketrans是与translate配套使用的字符串函数,通过映射的方式返回内容. 目录 str.maketrans() str.translate() 最后我们拿一个例子来具体说明: str. ...
- python中什么是字符举例说明_第20p,什么是字符串?Python中的str
原标题:第20p,什么是字符串?Python中的str 大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第20篇文章,第二阶段的课程:Python基础知识:Python的字符串(上 ...
- 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 ...
- PYTHON编码处理-str与Unicode的区别
一篇关于STR和UNICODE的好文章 整理下python编码相关的内容 注意: 以下讨论为Python2.x版本, Py3k的待尝试 开始 用python处理中文时,读取文件或消息,http参数等等 ...
- python中的str与expr的一个区别例子
我也说不清楚到底python中的str()与repr()到底有什么区别,下面的例子也许从某些方面能够说明: >>> hi = "Hello\nWorld" > ...
- python整数转换字符串_使用Python中的str()函数将整数值转换为字符串
python整数转换字符串 Given an integer value and we have to convert the value to the string using str() func ...
- python基本数据类型——str
一.字符串的创建 test = str() / "" test = str("licheng") / "licheng" 无参数,创建空字符 ...
- Python: 如何继承str/string?
想搞一个对象继承自str,然后存一些额外信息用来标识这个字符串,然后理所当然地重写了__init__发现跪了: class newstring(str):def __init__(self, valu ...
最新文章
- WebSocket API简介
- mysql支持UUID做外键_多表外键下将普通的id主键更新为uuid主键
- Asp.Net基础 - 4.ASP.Net揭秘之Input版自增 + 5.ViewState初探
- python 列表生成式
- 使用 shell 脚本对 Linux 系统和进程资源进行监控
- Deep Compression阅读理解及Caffe源码修改
- AndroidStudio_安卓原生开发_自定义服务器Token验证_MD5加密方法---Android原生开发工作笔记156
- CSDN Blog 之七宗罪
- 手机各种JS语法,随时更新
- 字符串用法大全(源码解析,建议收藏!)
- 46、练习:输出指定目录下的所有文件名称
- html怎么让鼠标自动移动位置,手把手教你编作弊软件之 鼠标自动移动/点击
- 修改XP登陆界面教程
- UE4地编大型开放世界~制作烘焙全流程
- CSDN如何收藏别人的博客文章
- 终于搞懂Dijkstra算法了
- 【Web技术】前端水印实现方案
- GraalVM - 云原生时代的 Java 笔记
- 轮询查找连接电脑设备IP地址
- 了解USB-HID协议
热门文章
- 使用Gradle将JAR工件发布到Artifactory
- 如何用ThreadLocals射击自己
- 使用执行程序和ThreadPoolExecutor的Java线程池示例
- MyBatis教程– CRUD操作和映射关系–第2部分
- Java应用程序中的SQL注入
- 使您的Spring Security @Secured注释更干燥
- 为什么在2012/2013年我将在新的Enterprise Java项目中继续使用Spring *和* Java EE
- 线程故事:Web应用程序中的ThreadLocal
- jqGrid,REST,AJAX和Spring MVC集成
- MacBook Air的命令终端如何在root和普通用户之间切换