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

2024-09-24 22:19:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文本文件,我必须从中读取很多数字(双精度)。 它具有文本文件中可见的ASCII控制字符,如DLE、NUL等。所以 当我从一行中读取它们以只获取doubles/int时,我得到的错误是“invalid literals\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一次从文本文件中删除所有这些控制字符?我想要 在我把文件解析成数字之前。。。

感谢您的帮助!


Tags: 文件错误ascii精度数字intliterals文本文件
2条回答

我知道这是一个很旧的帖子,但我正在回答,因为我认为,它可以帮助其他人。

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

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

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

Ref: Python re.sub()

使用string.printable

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

相关问题 更多 >