【发布时间】:2020-04-27 12:52:04
【问题描述】:
我想使用用户提供的字符串作为导出文件名,但必须确保我的系统允许该字符串作为文件名。从我这边来看,用例如替换任何禁止字符是可以的。 '_'。
在这里我找到了list of forbidden characters for filenames。
使用str.replace() 函数应该很容易,我只是想知道是否已经有一些东西可以做到这一点,甚至可能考虑到我使用的操作系统。
【问题讨论】:
-
这是高度依赖平台的!所以
try/except通常是最好的办法。 -
你应该可以使用
os库的内置is_path_exists_or_creatable()函数。 -
我不仅想知道这个文件名是否允许,如果不允许,我想修复它。见有问题的第二句。实际上才意识到我说最初用'_'替换整个字符串,但我的意思只是替换字符串中不允许的字符。
-
假设用户提交了两个无效名称
foo/a_b和foo_a/b。两者都将映射到foo_a_b:现在你应该做什么?如果用户(显然)要求您这样做,用第二个覆盖第一个是一回事;当用户认为他们提供了两个不同的名称时,另一件事完全是这样做的。 -
这个问题似乎本质上是stackoverflow.com/questions/295135/…的副本