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中copy()方法的使用
May 21 Python
通过Python使用saltstack生成服务器资产清单
Mar 01 Python
Pycharm学习教程(2) 代码风格
May 02 Python
Python实现excel转sqlite的方法
Jul 17 Python
python实现人民币大写转换
Jun 20 Python
python3使用QQ邮箱发送邮件
May 20 Python
Python 70行代码实现简单算式计算器解析
Aug 30 Python
python检测服务器端口代码实例
Aug 31 Python
python 列表、字典和集合的添加和删除操作
Dec 16 Python
在Python中通过threshold创建mask方式
Feb 19 Python
Python unittest如何生成HTMLTestRunner模块
Sep 08 Python
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
Aug 14 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
WINDOWS 2000下使用ISAPI方式安装PHP
2006/09/05 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
2011/11/10 PHP
php魔术方法与魔术变量、内置方法与内置变量的深入分析
2013/06/03 PHP
基于php常用正则表达式的整理汇总
2013/06/08 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
HTML中嵌入PHP的简单方法
2016/02/16 PHP
php PDO属性设置与操作方法分析
2018/12/27 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
再说AutoComplete自动补全之实现原理
2011/11/05 Javascript
JS实现一个按钮的方法
2015/02/05 Javascript
js中获取jsp表单中radio类型的值简单实例
2016/08/15 Javascript
Angular路由简单学习
2016/12/26 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
2017/03/17 Javascript
JS计算斐波拉切代码实例
2019/09/12 Javascript
vue-socket.io跨域问题有效解决方法
2020/02/11 Javascript
关于vue的列表图片选中打钩操作
2020/09/09 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
python读写ini文件示例(python读写文件)
2014/03/25 Python
Python实现删除Android工程中的冗余字符串
2015/01/19 Python
python实现将pvr格式转换成pvr.ccz的方法
2015/04/28 Python
Python KMeans聚类问题分析
2018/02/23 Python
Python中断多重循环的思路总结
2019/10/04 Python
python实现提取COCO,VOC数据集中特定的类
2020/03/10 Python
提高python代码运行效率的一些建议
2020/09/29 Python
浅析border-radius如何兼容IE
2016/04/19 HTML / CSS
彪马美国官网:PUMA美国
2017/03/09 全球购物
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
师范大学应届生求职信
2013/11/21 职场文书
大学生职业生涯设计书
2014/01/02 职场文书
清正廉洁演讲稿
2014/05/22 职场文书
小学数学课题方案
2014/06/15 职场文书
2015年见习期工作总结
2014/12/12 职场文书
员工年度工作总结2015
2015/05/18 职场文书
预备党员党支部意见
2015/06/02 职场文书
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
2021/06/11 Python