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 Web框架Flask中使用百度云存储BCS实例
Feb 08 Python
在Linux中通过Python脚本访问mdb数据库的方法
May 06 Python
Django中模型Model添加JSON类型字段的方法
Jun 17 Python
Python做文本按行去重的实现方法
Oct 19 Python
Python正则抓取新闻标题和链接的方法示例
Apr 24 Python
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
Jun 27 Python
python定时关机小脚本
Jun 20 Python
python中的for循环
Sep 28 Python
python学生管理系统
Jan 30 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
Feb 20 Python
Python爬虫之Spider类用法简单介绍
Aug 04 Python
Python GUI库Tkiner使用方法代码示例
Nov 27 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 字符串编码截取函数(兼容utf-8和gb2312)
2009/05/02 PHP
memcached 和 mysql 主从环境下php开发代码详解
2010/05/16 PHP
Jquery中getJSON在asp.net中的使用说明
2011/03/10 Javascript
js拦截alert对话框另类应用
2013/01/16 Javascript
jQuery获取Select选择的Text和Value(详细汇总)
2013/01/25 Javascript
jquery属性选择器not has怎么写 行悬停高亮显示
2013/11/13 Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
2015/05/09 Javascript
JavaScript仿静态分页实现方法
2015/08/04 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
2015/08/12 Javascript
JavaScript引用类型和基本类型详解
2016/01/06 Javascript
javascript实现简易计算器的代码
2016/05/31 Javascript
再谈javascript常见错误及解决方法
2016/09/16 Javascript
javascript  数组排序与对象排序的实例
2017/07/17 Javascript
ES6新增数据结构WeakSet的用法详解
2017/08/07 Javascript
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
2018/01/02 jQuery
Vue 禁用浏览器的前进后退操作
2020/09/04 Javascript
解决ant-design-vue中menu菜单无法默认展开的问题
2020/10/31 Javascript
详解JavaScript之Array.reduce源码解读
2020/11/01 Javascript
[15:56]Heroes18_暗影萨满(完美)
2014/10/31 DOTA
python 采集中文乱码问题的完美解决方法
2016/09/27 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
2019/06/21 Python
浅谈Python小波分析库Pywavelets的一点使用心得
2019/07/09 Python
python 生成任意形状的凸包图代码
2020/04/16 Python
浅谈keras.callbacks设置模型保存策略
2020/06/18 Python
python中的对数log函数表示及用法
2020/12/09 Python
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
校友会欢迎辞
2014/01/13 职场文书
《兰亭集序》教学反思
2014/02/11 职场文书
设计专业毕业生求职信
2014/06/25 职场文书
机电专业毕业生求职信
2014/07/01 职场文书
我们的节日端午节活动总结
2015/02/11 职场文书
公司出纳岗位职责
2015/03/31 职场文书
2015年度物业公司工作总结
2015/04/27 职场文书
2019年最新版见习人员管理制度!
2019/07/08 职场文书
Python中itertools库的四个函数介绍
2022/04/06 Python