【发布时间】:2014-03-03 10:14:32
【问题描述】:
我在 python 中有以下代码:
>>> import zipfile
>>> zip = zipfile.ZipFile('abc.zip', 'w')
>>> zip.writestr('myfile', 'This is sample text')
>>> zip.writestr('myfile', 'This is sample text')
>>> zip.close()
这将创建一个包含两个具有完全相同名称和路径的文件的存档。
这是为什么?
【问题讨论】:
-
你怎么能有两个文件,名称和路径完全相同?
-
当我尝试它时,看起来它也会在存档中创建两个具有相同名称和路径的文件。有在问题中正确重现它所需的所有代码,所以我不明白“缺乏足够的信息来诊断问题”关闭投票。
-
zip 格式允许多个文件同名。尽管我似乎找不到该功能的适当文档。如果有人找到链接,我想检查该信息。
-
这是归档格式的一个有点烦人的特性。例如,Tar 也允许这样做,文件名实际上不用于标识文件。这就是为什么在从 zip 存档中读取文件时不能依赖文件名,而应该传递
ZipInfo。 -
以类似的方式,定义为“相同”的内容在某种程度上是特定于操作系统/文件系统的。例如。你可以让'file.json'和'File.json'最终在OS X上与不区分大小写的文件系统发生冲突。不要让我开始使用 Windows 上的“file.aux”之类的东西......