0

我最近压缩了一些由我编写的脚本创建的文件,并将它们发送给使用 Windows 的同事。他无法解压缩存档,因为我的一些文件名包含:在 Windows 上不合法的 a。

去掉 . 是微不足道的:,但是如果在 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 安全的”?

4

1 回答 1

0

最简单的解决方案就是在构建文件名时避免使用保留的 windows 字符。

查看以下链接:命名文件、路径和命名空间它引用以下内容作为 Windows 非法字符:

使用当前代码页中的任何字符作为名称,包括 Unicode 字符和扩展字符集 (128–255) 中的字符,但以下字符除外:

以下保留字符:

  • <(小于)
  • >(大于)
  • : (冒号)
  • "(双引号)
  • /(正斜杠)
  • \(反斜杠)
  • | (垂直条或管)
  • ? (问号)
  • *(星号)
于 2018-05-16T07:51:39.880 回答