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实现带验证码网站的自动登陆实现代码
Jan 12 Python
深入解析Python设计模式编程中建造者模式的使用
Mar 02 Python
Django压缩静态文件的实现方法详析
Aug 26 Python
解决pycharm运行出错,代码正确结果不显示的问题
Nov 30 Python
详解python中init方法和随机数方法
Mar 13 Python
python3实现钉钉消息推送的方法示例
Mar 14 Python
python3爬虫学习之数据存储txt的案例详解
Apr 24 Python
如何通过python的fabric包完成代码上传部署
Jul 29 Python
Flask框架学习笔记之消息提示与异常处理操作详解
Aug 15 Python
Pytorch自己加载单通道图片用作数据集训练的实例
Jan 18 Python
python操作redis数据库的三种方法
Sep 10 Python
Pytorch 如何实现常用正则化
May 27 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
PHP5中使用DOM控制XML实现代码
2010/05/07 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
2014/06/05 PHP
PHP命令行脚本接收传入参数的三种方式
2014/08/20 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
PHP中引用类型和值类型功能与用法示例
2019/02/26 PHP
比较简单的一个符合web标准的JS调用flash方法
2007/11/29 Javascript
jQuery 常见开发使用技巧总结
2009/12/26 Javascript
JavaScript中的排序算法代码
2011/02/22 Javascript
详解参数传递四种形式
2015/07/21 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
2020/11/18 Javascript
JavaScript实现上下浮动的窗口效果代码
2015/10/12 Javascript
通过点击jqgrid表格弹出需要的表格数据
2015/12/02 Javascript
JavaScript正则表达式匹配 div  style标签
2016/03/15 Javascript
javascript表单事件处理方法详解
2016/05/15 Javascript
BootStrap使用popover插件实现鼠标经过显示并保持显示框
2016/06/23 Javascript
完美实现八种js焦点轮播图(上篇)
2016/07/18 Javascript
总结JavaScript的正则与其他语言的不同之处
2016/08/25 Javascript
JavaScript判断浏览器及其版本信息
2017/01/20 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
2017/04/13 jQuery
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
微信小程序实现购物页面左右联动
2019/02/15 Javascript
详解小程序循环require之坑
2019/03/08 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
2020/03/04 Javascript
python3.6根据m3u8下载mp4视频
2019/06/17 Python
详解selenium + chromedriver 被反爬的解决方法
2020/10/28 Python
pycharm中leetcode插件使用图文详解
2020/12/07 Python
全球领先美式家具品牌:Ashley爱室丽家居
2017/08/07 全球购物
韩国流行时尚女装网站:Dintchina(中文)
2018/07/19 全球购物
万宝龙英国官网:Montblanc手表、书写工具、皮革和珠宝
2018/10/16 全球购物
死者家属慰问信
2015/03/24 职场文书
2015年预算员工作总结
2015/05/14 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
2015初中政教处工作总结
2015/07/21 职场文书
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python
基于Redission的分布式锁实战
2022/08/14 Redis