关于路径:无论操作系统如何,Python zipfile总是使用posixpath文件名吗?

does Python zipfile always use posixpath filenames regardless of operating system?

对于我当前的实用程序来说,这可能无关紧要,但是为了更好的编码实践,我想知道使用zip file模块的zip文件中的文件是否可以使用posix样式的路径名(如subdir/file.ext)访问,而不管它是在哪个操作系统上创建的,或者我的python脚本运行在哪个系统上。或者,如果在Windows中,文件将以subdirfile.ext的形式存储或访问,我阅读了模块的pydoc,在这里和谷歌上进行了一些搜索,但没有看到与此问题相关的任何内容。谢谢。


对。

您可以在zipfile模块中看到这些行:

1
2
3
4
5
# This is used to ensure paths in generated ZIP files always use
# forward slashes as the directory separator, as required by the
# ZIP format specification.
if os.sep !="/" and os.sep in filename:
    filename = filename.replace(os.sep,"/")

在Zip规范中:

file name: (Variable)

The name of the file, with optional relative path.
The path stored should not contain a drive or
device letter, or a leading slash. All slashes
should be forward slashes '/' as opposed to
backwards slashes '\' for compatibility with Amiga
and UNIX file systems etc.