python - 使用 url 作为文件名

标签 python encoding character-encoding decoding

我有一个Python url,想将其转换为合适的文件名。我开始用“_”替换“/”,如下所示:

def encode_url(url):
    return url.replace("/", "_").replace(":", "#") + ".png"

我还希望能够将文件名解码为原始网址:

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

但是,如果网址是:

"https://example.com/example_example_example"

我需要一种不超过适用于任何给定网址的字符限制的编码和解码方法。 (如果存在)

base64 或十六进制编码的问题是网址通常会超过字符限制 255。

我正在用 python 制作一个监控器应用程序来记录站点的更改。我正在比较图像的变化。我将 json 中的链接存储在 config.json 中,然后使用encode_url() 方法将图像存储在文件夹中。

当用户删除链接时,需要将其从 config.json 和包含图像的文件夹中删除。因此,我需要将 url 编码为反向的方法,以便删除图像文件。

如果有比这更好的解决方案,我也会接受这个答案。

最佳答案

def encode_url(url):
    return url.replace("/", "$").replace(":", "#") + ".png"

def decode_filename(filename):
    return filename.replace('#',':').replace('$','_')

关于python - 使用 url 作为文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66926813/

相关文章:

utf-8 - ColdFusion:将带重音的区域字符转换为纯ASCII

c# - StreamReader 和 EBCDIC 的奇怪行为 : Why?

ios - 服务器的引号 (") appears as "â"在 iOS 应用程序中

ios - Activesync:具有 MIME 类型的 Sendmail 命令

ruby-on-rails - Ruby 编码问题

python - 我如何解决这个错误 : TypeError: argument 1 must be pygame. Surface, not PngImageFile

java - 对 URL 中的数据进行编码以实现高效传输

python - 如何在 psutil.Popen 完成后但在终止之前获取进程运行的 cpu_times

Python所有数据组合

python - 如何在不重复代码的情况下定义 randint 的元组?