我有一个文件名**.bxl
,我尝试在 Python 中读取这个文件,如下所示:
import chardet
bxl_file = open(bxl_filename,'rb')
bxl_str = bxl_file.readlines()[0]
the_encoding = chardet.detect(bxl_str)['encoding']
bxl_str = bxl_str.decode(the_encoding)
bxl_file.close()
当我打印时bxl_str
,它看起来像这样:但是当我直接将其显示为时它不起作用:
我想要的是得到一个字符串作为print(bxl_str)
结果。任何人都可以帮助我?赞赏!!文件链接
您遇到的行为是因为当您将变量插入解释器时,它会显示它的repr属性,而 print() 采用str(在这种情况下是相同的)并忽略所有不可打印的字符,例如:\ x00, \x01 并用其他东西替换它们(我猜是空格)。
如果您不关心间距,则可选解决方案:
''.join(x for x in bxl_str if x.isprintable())
或者,如果您确实关心间距:
spaced_str = ''
for char in bxl_str:
if char.isprintable():
spaced_str += char
else:
spaced_str += ' '
或者以更pythonic的方式(谢谢丹):
''.join(char if char.isprintable() else ' ' for char in bxl_str)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句