Python处理文本文件中控制字符的方法


Posted in Python onFebruary 07, 2017

控制字符

控制字符(Control Character),或者说非打印字符,出现于特定的信息文本中,表示某一控制功能的字符,如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等。

具体控制字符一共有下面两个集合:

七位ASCII定义了33个代码作为控制字符,它们是0到31、以及127,(位于0x00-0x1F及0x7F)。

兼容的八位ISO/IEC 8859-1加上了从ISO/IEC 6429定义的从128到159的32个代码,位于0x80-0x9F。

控制字符列表:http://ascii-table.com/control-chars.php

Python解决控制字符的方案:(未一一验证)

方案一:

strip_control_characters = lambda s:"".join(i for i in s if 31<ord(i)<127)

方案二:

def strip_control_characters(str_input): 
 if str_input: 
 import re 
 # unicode invalid characters 
 RE_XML_ILLEGAL = u'([\u0000-\u0008\u000b-\u000c\u000e-\u001f\ufffe-\uffff])' + \
   u'|' + \
   u'([%s-%s][^%s-%s])|([^%s-%s][%s-%s])|([%s-%s]$)|(^[%s-%s])' % \
   (unichr(0xd800),unichr(0xdbff),unichr(0xdc00),unichr(0xdfff), 
    unichr(0xd800),unichr(0xdbff),unichr(0xdc00),unichr(0xdfff), 
    unichr(0xd800),unichr(0xdbff),unichr(0xdc00),unichr(0xdfff), 
    ) 
 str_input = re.sub(RE_XML_ILLEGAL, "", input) 
 # ascii control characters 
 str_input = re.sub(r"[\x01-\x1F\x7F]", "", input) 
 return str_input

方案三:

import re
 
def remove_control_chars(s):
 control_chars = ''.join(map(unichr, range(0,32) + range(127,160)))
 control_char_re = re.compile('[%s]' % re.escape(control_chars))
 
 return control_char_re.sub('', s)
 
cleaned_json = remove_control_chars(original_json)
obj = simplejson.loads(cleaned_json)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用python能带来一定的帮助,如果有疑问大家可以留言交流。

Python 相关文章推荐
python实现上传下载文件功能
Nov 19 Python
python中numpy的矩阵、多维数组的用法
Feb 05 Python
详解Python logging调用Logger.info方法的处理过程
Feb 12 Python
Python基础之函数的定义与使用示例
Mar 23 Python
浅谈Python3中strip()、lstrip()、rstrip()用法详解
Apr 29 Python
解决Python内层for循环如何break出外层的循环的问题
Jun 24 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
Feb 17 Python
Python PIL库图片灰化处理
Apr 07 Python
Python实现UDP程序通信过程图解
May 15 Python
使用Python将语音转换为文本的方法
Aug 10 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
Aug 18 Python
Pycharm 解决自动格式化冲突的设置操作
Jan 15 Python
关于numpy中np.nonzero()函数用法的详解
Feb 07 #Python
Python脚本实现自动将数据库备份到 Dropbox
Feb 06 #Python
一张图带我们入门Python基础教程
Feb 05 #Python
详解python脚本自动生成需要文件实例代码
Feb 04 #Python
Python中文件I/O高效操作处理的技巧分享
Feb 04 #Python
Django应用程序中如何发送电子邮件详解
Feb 04 #Python
Python算法应用实战之栈详解
Feb 04 #Python
You might like
smarty模板引擎之配置文件数据和保留数据
2015/03/30 PHP
PHP获取文件扩展名的4种方法
2015/11/24 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
php 使用mpdf实现指定字段配置字体样式的方法
2019/07/29 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
javascript Prototype 对象扩展
2009/05/15 Javascript
Google Map API更新实现用户自定义标注坐标
2009/07/29 Javascript
JavaScript中常用的六种互动方法示例
2015/03/13 Javascript
JavaScript检测并限制复选框选中个数的方法
2015/08/12 Javascript
javascript数据结构之二叉搜索树实现方法
2015/11/25 Javascript
JavaScript中三种常见的排序方法
2017/02/24 Javascript
Angular排序实例详解
2017/06/28 Javascript
详解bootstrap用dropdown-menu实现上下文菜单
2017/09/22 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
2018/08/18 Javascript
Vue项目自动转换 px 为 rem的实现方法
2018/10/29 Javascript
Vue Echarts实现可视化世界地图代码实例
2019/05/07 Javascript
jQuery实现点击滚动到指定元素上的方法分析
2020/03/19 jQuery
Python map和reduce函数用法示例
2015/02/26 Python
python如何在终端里面显示一张图片
2016/08/17 Python
python模拟事件触发机制详解
2018/01/19 Python
Python实现判断给定列表是否有重复元素的方法
2018/04/11 Python
python 基本数据类型占用内存空间大小的实例
2018/06/12 Python
python读取图片任意范围区域
2019/01/23 Python
使用python实现简单五子棋游戏
2019/06/18 Python
Django权限设置及验证方式
2020/05/13 Python
使用HTML5的File实现base64和图片的互转
2013/08/01 HTML / CSS
详解html5 canvas 微信海报分享(个人爬坑)
2018/01/12 HTML / CSS
Burberry英国官网:英国标志性奢侈品牌
2017/03/29 全球购物
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
2016/01/12 面试题
总经理职责
2013/12/22 职场文书
母亲七十大寿答谢词
2014/01/18 职场文书
职务聘任书范文
2014/03/29 职场文书
推荐信格式范文
2014/05/09 职场文书
上课讲话检讨书范文
2015/05/07 职场文书
严以修身专题学习研讨会发言材料
2015/11/09 职场文书
mongodb数据库迁移变更的解决方案
2021/09/04 MongoDB