是否可以使用Python确保文件名或路径是合法的?

时间:2018-05-16 07:41:37

标签: python python-3.x pathlib

我最近压缩了一些由我编写的脚本创建的文件,并将它们发送给使用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安全的”?

1 个答案:

答案 0 :(得分:0)

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

查看以下链接:Naming Files, Path and Namespaces它引用以下内容作为Windows非法字符:

  

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

     

以下保留字符:

     
      
  • < (小于)
  •   
  • > (大于)
  •   
  • :(冒号)
  •   
  • " (双引号)
  •   
  • /(正斜线)
  •   
  • \(反斜杠)
  •   
  • | (竖杆或竖管)
  •   
  • ? (问号)
  •   
  • *(星号)
  •