如何删除不安全字符以保存fi

2024-10-01 11:33:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我想保存一个文件,文件名中最有效的字符保持不变,例如,如果提供了文件名:

>This\ Ăwesomé_Song?©.mp3

我想把它保存在Windows 7下,直到我删除>\和{},它才允许我保存它。字符Ă©和{}都很好,我希望保持它们的完整性(而不是f.e.只是通过ASCII过滤器运行所有内容)。在

我不知道在Unix下允许使用哪些字符,但我希望它能独立于平台工作。解决这个问题的方法是实现一个字符串列表,每个字符串都包含一类字符,从最坏的(f.e.?)到最无害的(f.e.字母a),然后逐个字符串地把它们敲出来,直到得到一个可以保存的文件名。在

语言是Python,谢谢!在


Tags: 文件字符串过滤器内容song文件名windowsascii
3条回答

在posix中,只有两个八位字节被保留,正斜杠(/,0x2F,dec 42)和null(\0,0x00,dec 0)。文件名中可以出现任何其他字符。在

>>> import re
>>> print re.sub(r'[\\/:"*?<>|]+', "", "This\ Ăwesomé_Song?©.mp3")
This Ăwesomé_Song©.mp3
>>> 

您可以使用this问题中的此模式列出所有有效字符:

>>> import string
>>> valid_chars = "-_.() %s%s" % (string.ascii_letters, string.digits)

然后手动检查你的文件名。在

相关问题 更多 >