在Python中删除错误路径字符(例如Windows上的"\“或":”)的最具跨平台的方法是什么?
解决方案
因为似乎没有理想的解决方案,所以我决定相对严格一些,并使用以下代码:
def remove(value, deletechars):
for c in deletechars:
value = value.replace(c,'')
return value;
print remove(filename, '\/:*?"<>|')
发布于 2012-11-28 06:01:10
我认为最安全的方法就是替换任何可疑的字符。因此,我认为您可以替换(或删除)任何不是字母数字、-、_、空格或句点的内容。下面是如何做到这一点的:
import re
re.sub(r'[^\w\-_\. ]', '_', filename)
上面的代码会转义所有不是字母、'_'
、'-'
、'.'
或带有'_'
的空格的字符。因此,如果您正在查看整个路径,则还需要在已批准的字符列表中抛出os.sep。
以下是一些示例输出:
In [27]: re.sub(r'[^\w\-_\. ]', '_', r'some\*-file._n\\ame')
Out[27]: 'some__-file._n__ame'
发布于 2009-06-23 15:48:33
该字符在os.sep
中,它将是"\“或":",这取决于您所在的系统。
发布于 2009-06-23 16:08:22
如果您使用的是python,请尝试使用os.path,以避免路径出现跨平台问题。
https://stackoverflow.com/questions/1033424
复制相似问题