在Python中处理以文件结尾的不可打印的ASCII字符

时间:2014-10-30 14:22:09

标签: python ascii

步骤:

  • 我有一些DBF文件。
  • 我使用DBF Converter将它们导出到SQL。
  • 然后我使用Python进行一些基本的字符串清理并导入SQL Server。

问题:

不知何故,我不知道如何,DBF文件中的一行转换出ASCII不可打印的字符SUB。 Python将此视为文件的结尾,因此我不知道我还没有正确终止字符串。

如果没有Python翻转,我怎样才能在Windows机器上用其他任何东西替换所有ASCII符号?

1 个答案:

答案 0 :(得分:2)

您可以使用re模块替换不可打印的符号,但这可能无法解决您在此处遇到的问题。 DBF是一种二进制文件格式,其中有许多非ascii字符。

import re
ascii_sym_re = re.compile(r'[\x00-\x09\x0b-\x1f\x7f-\xff]', re.DOTALL|re.MULTILINE)
print ascii_sym_re.sub('.', 'hello\x1athere')
with open('somefile','rb') as fp_in, open('somefile-scrubbed', 'wb') as fp_out:
    fp_out.write(ascii_sym_re.sub('.', fp_in.read())