gpt4 book ai didi

python - 字符串到 unix 文件名的可逆编码

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:29:05 24 4
gpt4 key购买 nike

有没有一种方法可以将任意用户输入的名称转换为具有可逆编码的安全文件名?

我有一些数据文件属于用户命名的实体。当然,他们可以做一些愚蠢的事情,比如在他们的名字中加入无效的文件系统字符。

我经常看到的两个建议是:

A) Base64 编码

B) 去除非法字符

Base64 是可逆的,但对于调试/内省(introspection)来说,当文件名看起来尽可能像名称时,它真的很好。只是让一切更容易调试。方法 B 不可逆,因此无论如何都必须冗余存储“实际”名称,因此不只是使用 uuid 或其他东西没有实际值(value)。

这是专门针对 Linux 的。虽然这不是特定于 Python 的,但这就是我在其中实现它的原因。

最佳答案

您可以使用 URL 编码:

from urllib.parse import quote

safefilename = quote(filename, safe='')

这是完全可往返的,并保持 ASCII 字符可读:

>>> from urllib.parse import quote, unquote
>>> quote('foo/../bar', safe='')
'foo%2F..%2Fbar'
>>> unquote(quote('foo/../bar', safe=''))
'foo/../bar'

请将safe设置为空字符串;默认是 '/' 所以斜杠通常不会被转义。

关于python - 字符串到 unix 文件名的可逆编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21762041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com