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 相关文章推荐
详解Django框架中用户的登录和退出的实现
Jul 23 Python
Python正则表达式使用范例分享
Dec 04 Python
利用Python中的pandas库对cdn日志进行分析详解
Mar 07 Python
python使用scrapy发送post请求的坑
Sep 04 Python
python的set处理二维数组转一维数组的方法示例
May 31 Python
Python3 实现文件批量重命名示例代码
Jun 03 Python
Python实现序列化及csv文件读取
Jan 19 Python
Python装饰器用法与知识点小结
Mar 09 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
Mar 30 Python
matplotlib教程——强大的python作图工具库
Oct 15 Python
python实现简易名片管理系统
Apr 11 Python
Elasticsearch 聚合查询和排序
Apr 19 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图片裁剪函数(保持图像不变形)
2014/05/04 PHP
PHP实现格式化文件数据大小显示的方法
2015/01/03 PHP
Laravel框架中实现使用阿里云ACE缓存服务
2015/02/10 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
2016/02/04 PHP
基于PHP后台的Android新闻浏览客户端
2016/05/23 PHP
JavaScript DOM学习第八章 表单错误提示
2010/02/19 Javascript
$.format,jquery.format 使用说明
2011/07/13 Javascript
JavaScript 原型继承
2011/12/26 Javascript
图片无缝滚动代码(向左/向下/向上)
2013/04/10 Javascript
PHPExcel中的一些常用方法汇总
2015/01/23 Javascript
浅谈vue-lazyload实现的详细过程
2017/08/22 Javascript
javascript获取指定区间范围随机数的方法
2017/09/08 Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
2018/01/18 Javascript
nodejs简单访问及操作mysql数据库的方法示例
2018/03/15 NodeJs
使用Sonarqube扫描Javascript代码的示例
2018/12/26 Javascript
详细解析Python当中的数据类型和变量
2015/04/25 Python
python处理按钮消息的实例详解
2017/07/11 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
2018/03/22 Python
Django基础知识与基本应用入门教程
2018/07/20 Python
Python常见内置高效率函数用法示例
2018/07/31 Python
Django 开发环境与生产环境的区分详解
2019/07/26 Python
tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
2020/02/06 Python
图解Python中深浅copy(通俗易懂)
2020/09/03 Python
Python‘==‘ 及 ‘is‘相关原理解析
2020/09/05 Python
如何利用python发送邮件
2020/09/26 Python
python 第三方库paramiko的常用方式
2021/02/20 Python
CSS3混合模式mix-blend-mode/background-blend-mode简介
2018/03/15 HTML / CSS
俄罗斯眼镜网: optikaworld
2016/07/31 全球购物
获取邓白氏信用报告:Dun & Bradstreet
2019/01/22 全球购物
P D PAOLA意大利官网:西班牙著名的珠宝首饰品牌
2019/09/24 全球购物
2014年大学生自我评价
2014/01/19 职场文书
十佳党员事迹材料
2014/08/28 职场文书
高一学年自我鉴定范文(3篇)
2014/09/26 职场文书
学校机关党总支领导班子整改工作方案
2014/10/26 职场文书
小学运动会入场口号
2015/12/24 职场文书
Python实现查询剪贴板自动匹配信息的思路详解
2021/07/09 Python