Python函数:将任意字符串转换为有效的文件名

5

是否有一个内置函数可以从字符串中删除所有不能在Windows文件名中使用的字符,或以某种方式替换它们?

例如:function("Some:unicode\symbols") --> "Some-unicode-symbols"


“所有字符”?ASCII?还是Unicode?用某种方式替换它们?您对想要看到的内容有任何具体建议吗? - S.Lott
谢谢您的建议,我会相应地进行编辑。 - Felix Dombek
可能的答案在这里?https://dev59.com/nnVC5IYBdhLWcg3wcgmd - bdk
有趣但并不是一个答案,白名单在 unicode 下是不可能的,而黑名单也不是很便携(不过如果没有其他办法的话,我会退而使用黑名单)。 - Felix Dombek
1个回答

5
import re

arbitrary_string = "File!name?.txt"
cleaned_up_filename = re.sub(r'[/\\:*?"<>|]', '', arbitrary_string)
filepath = os.path.join("/tmp", cleaned_up_filename)

with open(filepath, 'wb') as f:
    # ...

从用户gx获取
显然要根据您的情况进行调整。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接