繁体   English   中英

转换字节 -> 字符串 -> 回字节,并获得原始值

[英]Convert bytes -> string -> back to bytes, and get original value

我检查了有关此问题的所有 Stackoverflow 问题,但没有一个可以回答我的问题。我需要将\\\\转换为\\
编辑:
这就是我正在尝试的:

>>> a = b'\xe5jb\x8c?Q$\xf3\x1d\x97^\xfa3O\xa6U.txt'
>>> b = str(a)
>>> b
"b'\\xe5jb\\x8c?Q$\\xf3\\x1d\\x97^\\xfa3O\\xa6U.txt'"
>>> b = b.replace('b\'','')
>>> b = b[:len(b)-1]
>>> b
'\\xe5jb\\x8c?Q$\\xf3\\x1d\\x97^\\xfa3O\\xa6U.txt'
>>> c = bytes(b,'utf8')
>>> c
b'\\xe5jb\\x8c?Q$\\xf3\\x1d\\x97^\\xfa3O\\xa6U.txt'
>>> a == c
False

我如何使a==c真? 我试过

 .replace("\\\\","\\") 

但这无济于事。 字符串保持不变。 我需要将变量“a”中的字节作为文本存储到文件中,然后将其回调。 Python-3.8,Windows=10

您可以使用decode方法将c转换为字符串,然后使用ast.literal_eval在用b'...'包装ast.literal_eval其评估为字节文字:

from ast import literal_eval
a = b'\xe5jb\x8c?Q$\xf3\x1d\x97^\xfa3O\xa6U.txt'
c = b'\\xe5jb\\x8c?Q$\\xf3\\x1d\\x97^\\xfa3O\\xa6U.txt'
c = literal_eval("b'%s'" % c.decode())
print(a == c)

这输出: True

对字符串使用 .replace() 函数

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM