首页 > 解决方案 > 如何在不引发 EOL 错误的情况下将 '\\' 替换为 '\'?

问题描述

我正在从一个包含字节数据的文件中读取,但是当我打开文件并将 readline 数据存储到一个变量中时,它将它存储在一个带有反斜杠转义的字符串中,所以当我尝试解码该数据时,我得到的是确切的字符串数据而不是实际解码。

文件示例:

b'\xe0\xa8\xaa\xe0\xa9\xb0\xe0\xa8\x9c\xe0\xa8\xbe\xe0\xa8\xac\xe0\xa9\x80'
b'\xd9\xbe\xd9\x86\xd8\xac\xd8\xa7\xd8\xa8\xdb\x8c'
b'\xd9\xbe\xda\x9a\xd8\xaa\xd9\x88'

readline返回:

"b'\\xe0\\xa8\\xaa\\xe0\\xa9\\xb0\\xe0\\xa8\\x9c\\xe0\\xa8\\xbe\\xe0\\xa8\\xac\\xe0\\xa9\\x80'"

我明白为什么会有一个额外的反斜杠,但我不知道如何删除它或在没有它的情况下读取文件。

我试图替换那些双反斜杠,但这会引发 EOL 错误。

标签: pythonstringencodingreadlinedecoding

解决方案


如果您在文件上使用“rb”模式,那可能就是问题所在。它仍然只是一个文本文件。

当我不使用模式参数时,我得到:

"b'\xe0\xa8\xaa\xe0\xa9\xb0\xe0\xa8\x9c\xe0\xa8\xbe\xe0\xa8\xac\xe0\xa9\x80'
"

推荐阅读