Python字节串解码异常:转义字符致路径显示错误如何修复?
这问题我碰到过好多次了,根源在于Python对字节串里的反斜杠的解析逻辑!先给你拆解下为什么会出现奇怪的输出:
看你的代码里的字节串 b"C:\Users\victim\Desktop\test1.exe",Python会把里面的\v和\t当成转义序列处理:
\v对应ASCII里的垂直制表符(不可打印字符),终端显示时就变成了你看到的[]\t对应水平制表符,也就是空格,所以\test1就变成了est1
直接给你两种靠谱的解决办法:
方法1:用原始字节串(最省心)
在字节串前缀b后面加个r,告诉Python"别解析里面的转义,把反斜杠当普通字符就行":
encoding = 'utf-8' data = br"C:\Users\victim\Desktop\test1.exe" print(data.decode(encoding))
方法2:手动转义反斜杠
把每个反斜杠换成两个,这样Python就会把第二个反斜杠视为普通字符:
encoding = 'utf-8' data = b"C:\\Users\\victim\\Desktop\\test1.exe" print(data.decode(encoding))
随便选一种运行,就能得到你想要的正确路径C:\Users\victim\Desktop\test1.exe啦。
内容的提问来源于stack exchange,提问作者KGBGUY
相关产品推荐
相关产品推荐

