Python3从文本

时间:2016-06-08 08:31:41

标签: string python-3.x utf-8 io encode

我有一个输入文件和读取行,进行一些操作并将它们放入outputfile。

当我在记事本中打开输出文件时,没有问题。 当我用notepad ++(UTF8编码格式或ANSI)打开输出文件时,有一些不可打印的字符。例如。 SOH(标题的开头)

如何删除不可打印的字符?

SOH的字节码是01.是否有像string.remove(0x01) ??

这样的方法

1 个答案:

答案 0 :(得分:0)

您可以通过在每个字符上调用str.isprintable()方法来过滤文本。您可能需要小心,因为您可能想要保留的某些字符(例如制表符和换行符)被认为是不可打印的。

这是一些快速(未经测试)的代码:

for line in input_file:
    # do your processing to the line here

    line = "".join(c for c in line if c.isprintable() or c in "\n\t")  # filter line
    output_file.write(line)

如果您愿意,也可以在其他处理之前进行过滤。