从文本文件Python中删除ASCII控制字符

时间:2013-07-05 03:29:39

标签: python file-io python-2.7 ascii

我有一个文本文件,我必须从中读取很多数字(双倍)。 它具有像DLE,NUL等ASCII控制字符,在文本文件中可见。所以 当我读取它们只从一行获得双打/整数时,我得到的错误就像“无效的文字\ x10”。下面显示的是我文件的前两行。

DLE NUL NUL NUL [1, 167, 133, 6]DLE NUL NUL   
YS FS NUL[0.0, 4.3025989e-07, 1.5446712e-06, 3.1393029e-06, 5.0430463e-06, 7.1382601e-06

如何使用Python一次从文本文件中删除所有这些控制字符?我想要 这是在我将文件解析为数字之前完成的......

感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

使用string.printable

>>> import string
>>> filter(string.printable.__contains__, '\x00\x01XYZ\x00\x10')
'XYZ'

答案 1 :(得分:0)

我知道这是一个很老的帖子,但我正在回答,我想,它可以帮助别人。

我做了如下。它将用空字符串替换所有ASCII控制字符。

line = re.sub(r'[\x00-\x1F]+', '', line)

Ref: ASCII (American Standard Code for Information Interchange) Code

Ref: Python re.sub()

相关问题