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实现一个简单的项目监控
Mar 31 Python
python3新特性函数注释Function Annotations用法分析
Jul 28 Python
使用Python进行AES加密和解密的示例代码
Feb 02 Python
Python发送http请求解析返回json的实例
Mar 26 Python
Python返回数组/List长度的实例
Jun 23 Python
Flask框架URL管理操作示例【基于@app.route】
Jul 23 Python
详解Python中pandas的安装操作说明(傻瓜版)
Apr 08 Python
用Python识别人脸,人种等各种信息
Jul 15 Python
Windows上安装tensorflow  详细教程(图文详解)
Feb 04 Python
Python随机数函数代码实例解析
Feb 09 Python
利用matplotlib为图片上添加触发事件进行交互
Apr 23 Python
Python OpenCV快速入门教程
Apr 17 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清除bom示例
2014/03/03 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
PHP 7.1新特性的汇总介绍
2016/12/16 PHP
JavaScript 内置对象属性及方法集合
2010/07/04 Javascript
基于jquery的textarea发布框限制文字字数输入(添加中文识别)
2012/02/16 Javascript
探索Emberjs制作一个简单的Todo应用
2012/11/07 Javascript
使用js写的一个简易的投票
2013/11/27 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
BootStrap无限级分类(无限极分类封装版)
2016/08/26 Javascript
javascript代码调试之console.log 用法图文详解
2016/09/30 Javascript
js判断出两个字符串最大子串的函数实现方法
2016/11/01 Javascript
jQuery插件HighCharts绘制2D饼图效果示例【附demo源码下载】
2017/03/21 jQuery
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
2017/04/19 Javascript
详解vue渲染从后台获取的json数据
2017/07/06 Javascript
Vue js 的生命周期(看了就懂)(推荐)
2019/03/29 Javascript
vue+elementui 对话框取消 表单验证重置示例
2019/10/29 Javascript
Vue微信公众号网页分享的示例代码
2020/05/28 Javascript
详解Vue Cli浏览器兼容性实践
2020/06/08 Javascript
Element DateTimePicker日期时间选择器的使用示例
2020/07/27 Javascript
如何解决django配置settings时遇到Could not import settings 'conf.local'
2014/11/18 Python
python生成excel的实例代码
2017/11/08 Python
OpenCV-Python实现轮廓检测实例分析
2018/01/05 Python
python3实现爬取淘宝美食代码分享
2018/09/23 Python
简单谈谈python基本数据类型
2018/09/26 Python
如何运行带参数的python脚本
2019/11/15 Python
python列表推导式入门学习解析
2019/12/02 Python
Python利用PyPDF2库获取PDF文件总页码实例
2020/04/03 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
2020/06/03 Python
python调用私有属性的方法总结
2020/07/24 Python
css3绘制天猫logo实现代码
2012/11/06 HTML / CSS
一套.net面试题及答案
2016/11/02 面试题
自荐信格式
2013/12/01 职场文书
《草原》教学反思
2014/02/15 职场文书
乡镇信息公开实施方案
2014/03/23 职场文书
用Python监控你的朋友都在浏览哪些网站?
2021/05/27 Python
python简单验证码识别的实现过程
2021/06/20 Python