Python处理文本文件中控制字符的方法

 更新时间:2017年02月07日 10:18:23   投稿:daisy  
最近在使用Python的时候遇到过文档中出现控制字符报错的问题。想着总结一下,方便以后需要或这同样遇到问题的朋友,下面这篇文章主要介绍了Python处理文本文件中控制字符的解决方法,需要的朋友可以参考借鉴。

控制字符

控制字符(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学习笔记之装饰器

    这篇文章主要介绍了Python 装饰器的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-08-08
  • PyTorch中torch.matmul()函数常见用法总结

    PyTorch中torch.matmul()函数常见用法总结

    torch.matmul()也是一种类似于矩阵相乘操作的tensor连乘操作。但是它可以利用python中的广播机制,处理一些维度不同的tensor结构进行相乘操作,这篇文章主要介绍了PyTorch中torch.matmul()函数用法总结,需要的朋友可以参考下
    2023-04-04
  • 一小时学会TensorFlow2之Fashion Mnist

    一小时学会TensorFlow2之Fashion Mnist

    这篇文章主要介绍了TensorFlow2之Fashion Mnist,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • python实现最小二乘法的方法详解

    python实现最小二乘法的方法详解

    这篇文章主要介绍了如何基于python实现最小二乘法的方法,文中有非常详细的代码示例,对正在学习python的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2024-02-02
  • PyTorch使用CNN实现图像分类

    PyTorch使用CNN实现图像分类

    图像分类是计算机视觉领域的一项基本任务,也是深度学习技术的一个常见应用,近年来,卷积神经网络(cnn)和PyTorch库的结合由于其易用性和鲁棒性已经成为执行图像分类的流行选择,所以本文给大家介绍了PyTorch使用CNN实现图像分类的示例,需要的朋友可以参考下
    2025-03-03
  • NumPy 数学函数及代数运算的实现代码

    NumPy 数学函数及代数运算的实现代码

    这篇文章主要介绍了NumPy 数学函数及代数运算的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Python cookbook(数据结构与算法)保存最后N个元素的方法

    Python cookbook(数据结构与算法)保存最后N个元素的方法

    这篇文章主要介绍了Python数据结构与算法 保存最后N个元素的方法,涉及Python基于迭代器与生成器实现历史记录功能的相关操作技巧,需要的朋友可以参考下
    2018-02-02
  • Python解决“ImportError: Couldn‘t import Django”问题全攻略

    Python解决“ImportError: Couldn‘t import Django”问题全攻略

    本文主要介绍了Python解决“ImportError: Couldn‘t import Django”问题全攻略,具有一定的参考价值,感兴趣的可以了解一下
    2025-03-03
  • 教女朋友学Python(一)运行环境搭建

    教女朋友学Python(一)运行环境搭建

    这篇文章主要介绍了教女朋友学Python(一)运行环境搭建,具有一定借鉴价值,需要的朋友可以参考下。
    2017-11-11
  • 使用Python实现下载并保存网络图片

    使用Python实现下载并保存网络图片

    这篇文章主要为大家详细介绍了如何使用Python实现下载并保存网络图片,不需要有编程经验,本文将以最简单的方式一步步教你完成,快了跟随小编一起学习一下吧
    2024-12-12

最新评论