Python ZipFile 路径分隔符
Posted
技术标签:
【中文标题】Python ZipFile 路径分隔符【英文标题】:Python ZipFile path separators 【发布时间】:2011-11-18 02:09:36 【问题描述】:如果我使用 Python ZipFile 库解压缩 Zip 文件,该文件是在 Windows 上创建的,但我的代码在类 Unix 上运行,路径分隔符是否总是 Unix 样式?
【问题讨论】:
似乎必须如此,因为它没有存储为字符串。我当然希望如此:) 你希望如此!但是当你与电脑打交道时,希望与任何事情都无关...... 【参考方案1】:在内部,ZipFile 根据zip file specification 的要求存储正斜杠。
在外部,它们使用os.sep 进行翻译,因此它将与给定平台上通常预期的内容相匹配。
代码参考:
http://hg.python.org/cpython/file/2.7/Lib/zipfile.py#l295 http://hg.python.org/cpython/file/2.7/Lib/zipfile.py#l1046【讨论】:
谢谢!我认为这是真的,但最好有证据。 请注意,这种转换仅适用于在 ZIP 存档中创建条目时。访问现有成员时(例如使用zip_file.read('dir/file.txt')
)必须始终使用斜杠。
+1 用于指向 zip 文件规范的链接。谢谢!!!以下是相关部分: 4.4.17 文件名:(变量) 4.4.17.1 文件名,带有可选的相对路径。存储的路径不得包含驱动器或设备号,或前导斜杠。所有斜杠必须是正斜杠“/”而不是反斜杠“\”,以便与 Amiga 和 UNIX 文件系统等兼容。如果输入来自标准输入,则没有文件名字段。以上是关于Python ZipFile 路径分隔符的主要内容,如果未能解决你的问题,请参考以下文章