我有一个输入文件和读取行,进行一些操作并将它们放入outputfile。
当我在记事本中打开输出文件时,没有问题。 当我用notepad ++(UTF8编码格式或ANSI)打开输出文件时,有一些不可打印的字符。例如。 SOH(标题的开头)
如何删除不可打印的字符?
SOH的字节码是01.是否有像string.remove(0x01)
??
答案 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)
如果您愿意,也可以在其他处理之前进行过滤。