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 的 Socket 编程
Mar 24 Python
通过Python爬虫代理IP快速增加博客阅读量
Dec 14 Python
50行Python代码实现人脸检测功能
Jan 23 Python
解决python matplotlib imshow无法显示的问题
May 24 Python
python中类的输出或类的实例输出为这种形式的原因
Aug 12 Python
python将四元数变换为旋转矩阵的实例
Dec 04 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
Feb 27 Python
Python爬虫HTPP请求方法有哪些
Jun 03 Python
python numpy实现rolling滚动案例
Jun 08 Python
tensorflow图像裁剪进行数据增强操作
Jun 30 Python
Python selenium模拟网页点击爬虫交管12123违章数据
May 26 Python
聊聊Python中关于a=[[]]*3的反思
Jun 02 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实现多维数组中每个单元值(数字)翻倍的方法
2015/02/16 PHP
Extjs 几个方法的讨论
2010/01/28 Javascript
基于jQuery实现的Ajax 验证用户名是否存在的实现代码
2011/04/06 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
node.js实现逐行读取文件内容的代码
2014/06/27 Javascript
JS实现控制表格内指定单元格内容对齐的方法
2015/03/30 Javascript
浅析javascript的return语句
2015/12/15 Javascript
微信小程序 数据访问实例详解
2016/10/08 Javascript
BootStrap Table对前台页面表格的支持实例讲解
2016/12/22 Javascript
vue模块拖拽实现示例代码
2019/03/09 Javascript
JS实现根据详细地址获取经纬度功能示例
2019/04/16 Javascript
微信小程序搭建自己的Https服务器
2019/05/02 Javascript
JS实现返回上一页并刷新页面的方法分析
2019/07/16 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
2020/07/24 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
vue 插槽简介及使用示例
2020/11/19 Vue.js
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
Python socket.error: [Errno 98] Address already in use的原因和解决方法
2014/08/25 Python
在Python中使用正则表达式的方法
2015/08/13 Python
详解Python的collections模块中的deque双端队列结构
2016/07/07 Python
Python提取网页中超链接的方法
2016/09/18 Python
python微信跳一跳系列之棋子定位像素遍历
2018/02/26 Python
python list删除元素时要注意的坑点分享
2018/04/18 Python
python编写猜数字小游戏
2019/10/06 Python
DJango的创建和使用详解(默认数据库sqlite3)
2019/11/18 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
2020/03/01 Python
python实现测试工具(一)——命令行发送get请求
2020/10/19 Python
英国知名化妆品网站:Revolution Beauty(原TAM Beauty)
2018/02/28 全球购物
介绍下WebSphere的安全性
2013/01/31 面试题
铭万公司.net面试题笔试题
2014/07/20 面试题
Servlet如何得到服务器的信息
2015/12/22 面试题
cf收人广告词大全
2014/03/14 职场文书
初中班主任教育随笔
2015/08/15 职场文书
PHP对接阿里云虚拟号的实现(号码隐私保护)
2021/04/06 PHP
Python答题卡识别并给出分数的实现代码
2021/06/22 Python
进行数据处理的6个 Python 代码块分享
2022/04/06 Python