Python處理文本文件中控制字符的方法
控制字符
控制字符(Control Character),或者說非打印字符,出現(xiàn)于特定的信息文本中,表示某一控制功能的字符,如控制符:LF(換行)、CR(回車)、FF(換頁(yè))、DEL(刪除)、BS(退格)、BEL(振鈴)等;通訊專用字符:SOH(文頭)、EOT(文尾)、ACK(確認(rèn))等。
具體控制字符一共有下面兩個(gè)集合:
七位ASCII定義了33個(gè)代碼作為控制字符,它們是0到31、以及127,(位于0x00-0x1F及0x7F)。
兼容的八位ISO/IEC 8859-1加上了從ISO/IEC 6429定義的從128到159的32個(gè)代碼,位于0x80-0x9F。
控制字符列表:http://ascii-table.com/control-chars.php
Python解決控制字符的方案:(未一一驗(yàn)證)
方案一:
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)
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家學(xué)習(xí)或者使用python能帶來一定的幫助,如果有疑問大家可以留言交流。
相關(guān)文章
PyTorch中torch.matmul()函數(shù)常見用法總結(jié)
torch.matmul()也是一種類似于矩陣相乘操作的tensor連乘操作。但是它可以利用python中的廣播機(jī)制,處理一些維度不同的tensor結(jié)構(gòu)進(jìn)行相乘操作,這篇文章主要介紹了PyTorch中torch.matmul()函數(shù)用法總結(jié),需要的朋友可以參考下2023-04-04
一小時(shí)學(xué)會(huì)TensorFlow2之Fashion Mnist
這篇文章主要介紹了TensorFlow2之Fashion Mnist,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
NumPy 數(shù)學(xué)函數(shù)及代數(shù)運(yùn)算的實(shí)現(xiàn)代碼
這篇文章主要介紹了NumPy 數(shù)學(xué)函數(shù)及代數(shù)運(yùn)算的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07
Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)保存最后N個(gè)元素的方法
這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)與算法 保存最后N個(gè)元素的方法,涉及Python基于迭代器與生成器實(shí)現(xiàn)歷史記錄功能的相關(guān)操作技巧,需要的朋友可以參考下2018-02-02
Python解決“ImportError:?Couldn‘t?import?Django”問題全攻略
本文主要介紹了Python解決“ImportError:?Couldn‘t?import?Django”問題全攻略,具有一定的參考價(jià)值,感興趣的可以了解一下2025-03-03
教女朋友學(xué)Python(一)運(yùn)行環(huán)境搭建
這篇文章主要介紹了教女朋友學(xué)Python(一)運(yùn)行環(huán)境搭建,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-11-11
使用Python實(shí)現(xiàn)下載并保存網(wǎng)絡(luò)圖片
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)下載并保存網(wǎng)絡(luò)圖片,不需要有編程經(jīng)驗(yàn),本文將以最簡(jiǎn)單的方式一步步教你完成,快了跟隨小編一起學(xué)習(xí)一下吧2024-12-12

