我最近压缩了一些由我编写的脚本创建的文件,并将它们发送给使用Windows的同事。他无法解压缩存档,因为我的一些文件名包含:
,这在Windows上是不合法的。
删除:
是微不足道的,但如果在Windows路径/文件名中有其他字符我不知道是非法的呢?
我想知道pathlib
的“纯粹”路径对象是否会以任何方式标记非法字符,但它们并没有我能确定的那样:
>>> from pathlib import PurePosixPath, PureWindowsPath
>>> pp = PurePosixPath("foo/bar:baz.txt")
>>> wp = PureWindowsPath(pp)
>>> print(wp)
foo\bar:baz.txt
鉴于我无法轻松访问Windows计算机进行测试,是否有一种简单的方法可以确保Python生成的路径/文件名是“Windows安全的”?
答案 0 :(得分:0)
最简单的解决方案就是避免在构建文件名时使用保留的Windows字符。
查看以下链接:Naming Files, Path and Namespaces它引用以下内容作为Windows非法字符:
使用当前代码页中的任何字符作为名称,包括扩展字符集(128-255)中的Unicode字符和字符,但以下情况除外:
以下保留字符:
- < (小于)
- > (大于)
- :(冒号)
- " (双引号)
- /(正斜线)
- \(反斜杠)
- | (竖杆或竖管)
- ? (问号)
- *(星号)