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

3

我有一个文本文件,需要读取很多数字(double)。该文件包含ASCII控制字符,例如DLE,NUL等,这些字符在文本文件中是可见的。因此,当我从一行中读取只有双精度/整数时,我会遇到错误,例如“无效文字\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一次性从文本文件中删除所有控制字符? 在将文件解析为数字之前,我希望这样做...感谢任何帮助!

也许你应该考虑解析它们,这样你就知道如何解析文件的其余部分了。 - Ignacio Vazquez-Abrams
然而,在我读取任何内容之前,我仍然非常需要移除这些字符。 - atmaere
2个回答

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

使用正则表达式(请参见此答案)速度快一个数量级。 - Wesley Baugh
@WesleyBaugh,如果速度很重要,你可以使用str.translate - falsetru
@alvas,如果您想使用完全相同的字符,可以尝试使用unicode(string.printable) - falsetru

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接