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命令行参数sys.argv使用示例
Jan 28 Python
python实现360的字符显示界面
Feb 21 Python
Python利用pyHook实现监听用户鼠标与键盘事件
Aug 21 Python
python创建关联数组(字典)的方法
May 04 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
Dec 14 Python
python利用thrift服务读取hbase数据的方法
Dec 27 Python
在Qt中正确的设置窗体的背景图片的几种方法总结
Jun 19 Python
Django组件content-type使用方法详解
Jul 19 Python
python 申请内存空间,用于创建多维数组的实例
Dec 02 Python
浅谈tensorflow 中tf.concat()的使用
Feb 07 Python
python微信公众号开发简单流程实现
Mar 09 Python
Python3.9新特性详解
Oct 10 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
php curl常见错误:SSL错误、bool(false)
2011/12/28 PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
2012/09/05 PHP
thinkphp 多表 事务详解
2013/06/17 PHP
Eclipse的PHP插件PHPEclipse安装和使用
2014/07/20 PHP
php使用正则验证中文
2016/04/06 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
关于js注册事件的常用方法
2013/04/03 Javascript
jquery的live使用注意事项
2014/02/18 Javascript
当某个文本框成为焦点时即清除文本框内容
2014/04/28 Javascript
javascript实现当前页导航激活的方法
2015/02/27 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
基于RequireJS和JQuery的模块化编程——常见问题全面解析
2016/04/14 Javascript
BootStrap中Table分页插件使用详解
2016/10/09 Javascript
JSON与js对象序列化实例详解
2017/03/16 Javascript
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
通过js控制时间,一秒一秒自己动的实例
2017/10/25 Javascript
vue webpack打包后图片路径错误的完美解决方法
2018/12/07 Javascript
JS操作json对象key、value的常用方法分析
2019/10/29 Javascript
微信小程序scroll-view点击项自动居中效果的实现
2020/03/25 Javascript
javascript实现文字跑马灯效果
2020/06/18 Javascript
[01:01:52]完美世界DOTA2联赛PWL S2 GXR vs Magma 第二场 11.25
2020/11/26 DOTA
python通过wxPython打开一个音频文件并播放的方法
2015/03/25 Python
Python中__new__与__init__方法的区别详解
2015/05/04 Python
Python实现运行其他程序的四种方式实例分析
2017/08/17 Python
Django中login_required装饰器的深入介绍
2017/11/24 Python
Python无损音乐搜索引擎实现代码
2018/02/02 Python
DataFrame中的object转换成float的方法
2018/04/10 Python
Python matplotlib的使用并自定义colormap的方法
2018/12/13 Python
cProfile Python性能分析工具使用详解
2019/07/22 Python
HTML5 Canvas之测试浏览器是否支持Canvas的方法
2015/01/01 HTML / CSS
Canal官网:巴西女性时尚品牌
2019/10/16 全球购物
学校司机岗位职责
2013/11/14 职场文书
群众路线教育实践活动实施方案
2014/10/31 职场文书
敲诈同学钱财检讨书范文
2014/11/18 职场文书
贫困生证明范文
2015/06/16 职场文书
高中开学感言
2015/08/01 职场文书