Python 使用url作为文件名
我在python中有一个url,希望将其转换为合适的文件名。我开始时用“u”替换“/”,如下所示:Python 使用url作为文件名,python,encoding,character-encoding,decoding,Python,Encoding,Character Encoding,Decoding,我在python中有一个url,希望将其转换为合适的文件名。我开始时用“u”替换“/”,如下所示: def encode_url(url): return url.replace("/", "_").replace(":", "#") + ".png" 我还希望能够将文件名解码为原始url: def decode_filename(filename): n_url = "
def encode_url(url):
return url.replace("/", "_").replace(":", "#") + ".png"
我还希望能够将文件名解码为原始url:
def decode_filename(filename):
n_url = ""
for i in filename:
if i == "#":
n_url += ":"
elif i == "_":
n_url += "/"
else:
n_url += i
return n_url
但是,如果url为:
"https://example.com/example_example_example"
我需要一个编码和解码方法,不超过字符限制,在任何给定的url工作。(如有)
base64或十六进制编码的问题是URL经常超过字符限制255。
我正在用python制作一个monitorer应用程序,用于记录站点的更改。我正在比较图像中的变化。我将json中的链接存储在config.json中,然后使用encode_url()方法将图像存储在文件夹中
当用户删除链接时,需要将其从config.json和包含图像的文件夹中删除。因此,为了删除图像文件,我需要将url编码为可反转的方法
如果有比这更好的解决方案,我也会接受这个答案。哈哈,我没有想到“$”这个字符。谢谢:)事实上,除了/\:*“?”之外,您可以使用任何UTF-16字符,还有两个大问题!1.还有许多其他字符不适合文件名:2.在包含
$
或\
的URL上解码失败
def encode_url(url):
return url.replace("/", "$").replace(":", "#") + ".png"
def decode_filename(filename):
return filename.replace('#',':').replace('$','_')