【问题标题】:Python function to make arbitrary strings valid filenames使任意字符串成为有效文件名的 Python 函数
【发布时间】:2011-07-12 04:49:51
【问题描述】:

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

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

【问题讨论】:

  • “所有字符”? ASCII?还是统一码?以“某种方式”替换它们?对您想看的内容有什么具体建议吗?
  • 感谢您的建议,我会相应地编辑它。
  • 这里有可能的答案吗? stackoverflow.com/questions/295135/…
  • 有趣但不是答案,白名单对于 unicode 是不可能的,黑名单是不可移植的(虽然如果它不起作用,我会求助于黑名单)。

标签: python windows string filenames


【解决方案1】:
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
显然适应你的情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-11
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    相关资源
    最近更新 更多