【发布时间】:2018-05-11 18:22:00
【问题描述】:
我正在将一组句子的录音保存到相应的一组音频文件中。
句子包括:
Ich weiß es nicht!
¡No lo sé!
Ég veit ekki!
您如何建议我将句子转换为人类可读的文件名,该文件名稍后将在在线服务器上提供。我现在不确定我将来可能会处理哪些语言。
更新:
请注意,两个句子不能相互冲突。例如:
É bär icke dej.
E bår icke dej.
无法解析为相同的文件名,因为它们会相互覆盖。这是这里提到的 slugify 函数的问题:Turn a string into a valid filename?
我想出的最好的方法是使用 urllib.parse.quote。但是,我认为生成的输出比我希望的更难阅读。有什么建议吗?:
Ich%20wei%C3%9F%20es%20nicht%21
%C2%A1No%20lo%20s%C3%A9%21
%C3%89g%20veit%20ekki%21
【问题讨论】:
-
您是否有必要从“转义”文件名中重建确切的原始名称?否则我想你可以为冲突添加后缀......无论如何,我知道这不是你的问题,但你可能想要考虑一个更防弹的解决方案,比如使用一些 UUID 作为文件名并在一个相关的句子文件/数据库/任何东西。我发现很难想象一个坚如磐石的算法能够处理任何类型的 Unicode 输入。
-
unix.stackexchange.com/questions/38055/utf-8-filenames 如果这个答案是正确的,为什么不按原样写出句子呢?如果您想将它们用于不允许使用非 ascii 字符的目的,您可以在那时转换它们。
-
不确定您的需求,但如果这涉及到来自例如英语的翻译,您是否可以将文件命名为
<sentence>_<language>(例如I don't know_de_DE)? -
@GVH: 非 ASCII 文件名一旦你尝试与不同的系统交换它们就是一场噩梦,更不用说 zip 文件了......
-
您的示例在我看来是有效的文件名。
标签: python python-3.x filenames sanitize