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使用回溯法子集树模板解决爬楼梯问题示例
Sep 08 Python
使用Python+Splinter自动刷新抢12306火车票
Jan 03 Python
Python 中导入csv数据的三种方法
Nov 01 Python
如何利用Boost.Python实现Python C/C++混合编程详解
Nov 08 Python
自学python的建议和周期预算
Jan 30 Python
Python中asyncio模块的深入讲解
Jun 10 Python
python提取照片坐标信息的实例代码
Aug 14 Python
Python json格式化打印实现过程解析
Jul 21 Python
python连接mysql数据库并读取数据的实现
Sep 25 Python
浅析python 字典嵌套
Sep 29 Python
Python基础学习之奇异的GUI对话框
May 27 Python
使用Djongo模块在Django中使用MongoDB数据库
Jun 20 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缩略图等比例无损压缩,可填充空白区域补充色
2011/06/10 PHP
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
比较详细的关于javascript 解析json的代码
2009/12/16 Javascript
利用了jquery的ajax实现二级联互动菜单
2013/12/02 Javascript
jQuery实现鼠标可拖动调整表格列宽度
2014/05/26 Javascript
jquery拖拽排序简单实现方法(效果增强版)
2016/02/16 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
全面了解构造函数继承关键apply call
2016/07/26 Javascript
微信小程序 检查接口状态实例详解
2017/06/23 Javascript
浅谈vue中数据双向绑定的实现原理
2017/09/14 Javascript
mpvue+vant app搭建微信小程序的方法步骤
2019/02/11 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
js面试题之异步问题的深入理解
2020/09/20 Javascript
Python完全新手教程
2007/02/08 Python
手动实现把python项目发布为exe可执行程序过程分享
2014/10/23 Python
Python中的lstrip()方法使用简介
2015/05/19 Python
Python进行数据提取的方法总结
2016/08/22 Python
VTK与Python实现机械臂三维模型可视化详解
2017/12/13 Python
Python实现查找数组中任意第k大的数字算法示例
2019/01/23 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
python获取array中指定元素的示例
2019/11/26 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
2020/03/19 Python
python 实现全球IP归属地查询工具
2020/12/18 Python
美国最大的万圣节服装网站:HalloweenCostumes.com
2017/10/12 全球购物
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
GafasWorld西班牙:购买太阳镜、眼镜和隐形眼镜
2019/09/08 全球购物
德国富尔达运动鞋店:43einhalb
2020/12/25 全球购物
金属材料工程个人求职的自我评价
2013/12/04 职场文书
《中华少年》教学反思
2014/02/15 职场文书
2014镇副书记群众路线专题民主生活会思想汇报
2014/09/23 职场文书
汽车销售助理岗位职责
2015/04/14 职场文书
师范生见习总结范文
2015/06/23 职场文书
有关三国演义的读书笔记
2015/06/25 职场文书
学生病假条怎么写
2015/08/17 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
golang中实现给gif、png、jpeg图片添加文字水印
2021/04/26 Golang