Py学习  »  Python

如何在python3中将“\\”转换为“\”?

Mr.Dark • 4 年前 • 235 次点击  

编辑 这就是我要尝试的:

>>> 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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/57032
 
235 次点击  
文章 [ 2 ]  |  最新文章 4 年前
Maede
Reply   •   1 楼
Maede    4 年前

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

Mr.Dark
Reply   •   2 楼
Mr.Dark    4 年前

你可以转换 c 一根绳子 decode 方法,然后使用 ast.literal_eval b'...' :

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