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中logging库的使用总结
Oct 18 Python
python 找出list中最大或者最小几个数的索引方法
Oct 30 Python
对Python random模块打乱数组顺序的实例讲解
Nov 08 Python
python调用自定义函数的实例操作
Jun 26 Python
详解python中eval函数的作用
Oct 22 Python
pyinstaller打包程序exe踩过的坑
Nov 19 Python
python判断两个序列的成员是否一样的实例代码
Mar 01 Python
python opencv实现简易画图板
Aug 27 Python
Python 如何实现数据库表结构同步
Sep 29 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
Dec 15 Python
如何用python爬取微博热搜数据并保存
Feb 20 Python
python 对xml解析的示例
Feb 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
php基础知识:类与对象(5) static
2006/12/13 PHP
php实现简易计算器
2020/08/28 PHP
JavaScript高级程序设计 DOM学习笔记
2011/09/10 Javascript
Prototype的Class.create函数解析
2011/09/22 Javascript
AngularJS基础教程之简单介绍
2015/09/27 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
2015/11/30 Javascript
Bootstrap如何创建表单
2016/10/21 Javascript
JS搜狐面试题分析
2016/12/16 Javascript
angular.js 路由及页面传参示例
2017/02/24 Javascript
javascript中的面向对象
2017/03/30 Javascript
vue服务端渲染的实例代码
2017/08/28 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
2017/10/20 jQuery
原生JS与jQuery编写简单选项卡
2017/10/30 jQuery
vue实现的上传图片到数据库并显示到页面功能示例
2018/03/17 Javascript
layui实现table加载的示例代码
2018/08/14 Javascript
vue+element实现打印页面功能
2019/05/20 Javascript
微信小程序上传图片到php服务器的方法
2019/05/23 Javascript
js设计模式之代理模式及订阅发布模式实例详解
2019/08/15 Javascript
python通过ElementTree操作XML获取结点读取属性美化XML
2013/12/02 Python
Python多进程multiprocessing用法实例分析
2017/08/18 Python
python判断列表的连续数字范围并分块的方法
2018/11/16 Python
Python字典添加,删除,查询等相关操作方法详解
2020/02/07 Python
python TCP包注入方式
2020/05/05 Python
python中复数的共轭复数知识点总结
2020/12/06 Python
在python3.9下如何安装scrapy的方法
2021/02/03 Python
详解如何解决H5开发使用wx.hideMenuItems无效果不生效
2021/01/20 HTML / CSS
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
出口公司经理求职简历中的自我评价
2013/10/13 职场文书
学校门卫岗位职责
2014/03/16 职场文书
法人授权委托书
2014/04/03 职场文书
行政专员岗位职责说明书
2014/07/30 职场文书
孩子教育的心得体会
2014/09/01 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
nginx反向代理时如何保持长连接
2021/03/31 Servers
Axios取消重复请求的方法实例详解
2021/06/15 Javascript