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中用于计算指数的exp()方法
May 14 Python
python实现矩阵乘法的方法
Jun 28 Python
python实现简单遗传算法
Mar 19 Python
python实现音乐下载的统计
Jun 20 Python
python实现机器人卡牌
Oct 06 Python
SpringBoot实现登录注册常见问题解决方案
Mar 04 Python
python简单的三元一次方程求解实例
Apr 02 Python
Python urllib.request对象案例解析
May 11 Python
python语音识别指南终极版(有这一篇足矣)
Sep 09 Python
Python中Permission denied的解决方案
Apr 02 Python
PyQt5 QThread倒计时功能的实现代码
Apr 02 Python
matplotlib之pyplot模块实现添加子图subplot的使用
Apr 25 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中Date获取时间不正确怎么办
2008/06/05 PHP
php 什么是PEAR?(第三篇)
2009/03/19 PHP
php学习之 认清变量的作用范围
2010/01/26 PHP
在PHP中使用curl_init函数的说明
2010/11/02 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
2014/03/13 PHP
Yii redis集合的基本使用教程
2020/06/14 PHP
function foo的原型与prototype属性解惑
2010/11/19 Javascript
火狐下table中创建form导致两个table之间出现空白
2013/09/02 Javascript
JS截取字符串常用方法整理及使用示例
2013/10/18 Javascript
Javascript中3个需要注意的运算符
2015/04/02 Javascript
javascript图片预加载实例分析
2015/07/16 Javascript
jquery实现树形菜单完整代码
2015/12/29 Javascript
基于javascript实现页面加载loading效果
2020/09/15 Javascript
javascript实现无法关闭的弹框
2016/11/27 Javascript
vue写一个组件
2018/04/09 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
Vue组件间的通信pubsub-js实现步骤解析
2020/03/11 Javascript
vue-drag-chart 拖动/缩放图表组件的实例代码
2020/04/10 Javascript
python基础教程之字典操作详解
2014/03/25 Python
python3如何将docx转换成pdf文件
2018/03/23 Python
python:接口间数据传递与调用方法
2018/12/17 Python
利用Python的turtle库绘制玫瑰教程
2019/11/23 Python
在python中创建指定大小的多维数组方式
2019/11/28 Python
TensorFlow 多元函数的极值实例
2020/02/10 Python
Python 读取位于包中的数据文件
2020/08/07 Python
python openCV实现摄像头获取人脸图片
2020/08/20 Python
一套Java笔试题
2016/08/20 面试题
什么是托管函数?托管函数有什么用?
2014/06/15 面试题
秋季运动会通讯稿
2014/01/24 职场文书
师德个人剖析材料
2014/02/02 职场文书
2014年党的群众路线教育实践活动总结
2014/04/25 职场文书
525心理活动总结
2014/07/04 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
2015年销售员工作总结范文
2015/04/07 职场文书
日本读研:怎样写好一篇日本研究计划书?
2019/07/15 职场文书
Nginx安装配置详解
2022/06/25 Servers