我在一个文件中有一个base64编码的八位字节字符串:
\x7D\x1E\x40\xEE\x62\x12\xE1\x9C\xC9\x28\x63\x95\xB6\x0C\xCB\xF7\xD2\x2F\x6F\xA8\xA1\xF5 \x21\x4E\x7A\x4D\x79\x38\x78\xBF\x1B\x2B\x73\x28\x57\x5C\x8F\xB2\x53\xC0\x4C\x57\x6C\x77 \xCF\x88\xA3\xAA\x7D\x52\xEA\x2F\xCD\xE9\x29\x27\xD9\x0F\xA1\xF4\x12\xDB\xBF\x65\x09\x4C \x29\xE9\xC9\xB5\x0F\x3C\xE5\xEC\x82\xBC\x42\x3C\xBB\xE2\xFF\x7B\x7B\xB1\x32\x3F\x4D\xC5 \x14\x66\x69\x98\x0C\x43\xB1\xE2\x9D\x7F\x63\xEF\xF5\xB1\xEA\xA0\xDC\x58\x8B\x1F\x9E\xE1 \x12\x14\xA3\xD2\x73\x27\x73\xE5\xC8\x2B\xBD\x0A\x0B\xE6\x05\x42\x36\x21
我想用Python来读。但是Python会自动为我跳过反斜杠,因此我得到了以下字符串:
\\x7D\\x1E\\x40\\xEE\\x62\\x12\\xE1\\x9C\\xC9\\x28\\x63\\x95\\xB6\\x0C\\xCB\\xF7\\xD2\\x2F\\x6F\\xA8\\xA1\\xF5\\x21\\x4E\\x7A\\x4D\\x79\\x38\\x78\\xBF\\x1B\\x2B\\x73\\x28\\x57\\x5C\\x8F\\xB2\\x53\\xC0\\x4C\\x57\\x6C\\x77\\xCF\\x88\\xA3\\xAA\\x7D\\x52\\xEA\\x2F\\xCD\\xE9\\x29\\x27\\xD9\\x0F\\xA1\\xF4\\x12\\xDB\\xBF\\x65\\x09\\x4C\\x29\\xE9\\xC9\\xB5\\x0F\\x3C\\xE5\\xEC\\x82\\xBC\\x42\\x3C\\xBB\\xE2\\xFF\\x7B\\x7B\\xB1\\x32\\x3F\\x4D\\xC5\\x14\\x66\\x69\\x98\\x0C\\x43\\xB1\\xE2\\x9D\\x7F\\x63\\xEF\\xF5\\xB1\\xEA\\xA0\\xDC\\x58\\x8B\\x1F\\x9E\\xE1\\x12\\x14\\xA3\\xD2\\x73\\x27\\x73\\xE5\\xC8\\x2B\\xBD\\x0A\\x0B\\xE6\\x05\\x42\\x36\\x21
还有。。。在
>>> repr(sig_bytes)
"'\\\\x7D\\\\x1E\\\\x40\\\\xEE\\\\x62\\\\x12...'"
>>> sig_bytes.replace("\\x","\x")
ValueError: invalid \x escape
我该怎么办?在
您可能会看到您的字符串的
repr()
版本显示在某个地方,这并不意味着您的字符串加载错误:编辑:
如果您的字符串已经是双转义的并且您想删除它们,请使用
^{pr2}$replace
,并且不要忘记在参数中转义\
:编辑2:
OP以某种方式将repr字符串加载到它的string变量中,而不是正确的字符串数据。在
^{3}$让我们重新解释成OP从一开始就应该加载的正确形式。为此,我们将构造一个完整的字符串repr,方法是用引号将其括起来,然后要求
ast
模块literal_eval
它:相关问题 更多 >
编程相关推荐