如何将ASCII十六进制代码中的路径转换为Python中等效的ASCII字母?

问题描述:

我想使用Python中的以下路径:如何将ASCII十六进制代码中的路径转换为Python中等效的ASCII字母?

/home/user/Music/library/1-02%2520Maralito.mp3

的文件名是:“1-02 Maralito .mp3“

所以空间正在转换为代码%2520,我不知道代表什么。

我在Ubuntu上使用Rhythmbox API,我无法将值转换回Python。有什么建议吗?

该字符串已被URL编码两次。 %25代表%字符。解码%25产生的%20代表一个空格。

urllib.parse.unquote(只是urllib.unquote在Python 2)解码%编码,你会想它两次解码:

t = "/home/user/Music/library/1-02%2520Maralito.mp3" 
from urllib.parse import unquote # Python 3 
from urllib import unquote   # Python 2 
print(unquote(unquote(t))) 
+0

哦,谢谢。这是相当* urllib.parse.unquote(urllib.parse.unquote(uri))* – latach

+0

是的,你是对的,他们改变了Python 3中。我无意中给你的Python 2.x的答案。我会更新。 – kindall