在 Python 中删除错误路径字符(例如 Windows 上的“\”或“:”)的最跨平台的方法是什么?
解决方案
因为似乎没有理想的解决方案,所以我决定相对限制并确实使用了以下代码:
def remove(value, deletechars):
for c in deletechars:
value = value.replace(c,'')
return value;
print remove(filename, '\/:*?"<>|')
原文由 Martin 发布,翻译遵循 CC BY-SA 4.0 许可协议
不幸的是,可接受的字符集因操作系统 和 文件系统而异。
接受的字符列表可能会有所不同,具体取决于首先格式化文件系统的机器的操作系统和区域设置。
.NET 有 GetInvalidFileNameChars 和 GetInvalidPathChars ,但我不知道如何从 Python 中调用它们。
您最好的选择可能是在所有平台上都过于保守,或者只是尝试创建文件名并处理错误。