首页 > 编程知识 正文

docker各版本下载,python解压到指定文件夹

时间:2023-05-05 10:14:42 阅读:17584 作者:540

太长了,读不懂。 虽然不需要制造一些额外的信息,但这是可以做到的。 没有排序。 即使EME确实有ESE并且必须进行排序,也与性能成本无关。 在

首先,让我来说明zipfiles是如何工作的。 (即使你知道这一点,今后有同样问题的读者可能也不会理解。 )

zipfile是一个大于或等于0的片段,后跟中央目录。 在

的处理,就好像它们都连接到了大文件。 在

的主体可以包含任何顺序的zip条目和所需的内容。 (这是DOS/Windows自解压缩归档的工作原理。 可执行文件位于第一个片段的开头。 )看起来像zip条目但未被中央目录引用的内容不会被视为zip条目,除非修复损坏的zipfile

每个zip条目都以提供以下数据的文件名、压缩格式等的标头开头: 在

目录是包含几乎相同信息的目录条目列表,以及指向zip条目所在位置的指针。 在

目录条目的顺序决定了归档的顺序。 ificallthebuiltinmethodextract (/home/MSA la/test.txt )、whichcopyofthefileisextractedandwrittentothefilesysystem?

这个行为哪里都没有指定。 在

要提取整个归档文件,必须按照zip目录中的顺序(和^{}中给出的顺序)提取两个文件,第二个文件复盖第一个文件。 在

但是,按名字提取不一定要同时给两个,可以给最后一个,给第一个,也可以随机选择一个。 在

Python拿出了最后一个。 读取目录时,最后一个文件名将复盖前面的文件名,因为它只是在ZipInfos中生成dict映射文件名并根据情况添加。 (Here's the 3.7 code.) )每次尝试以文件名访问内容时,只需在该dict中查找文件名并获取ZipInfo。 在

但是这是你想依靠的吗? 我不知道。 另一方面,这一行为从python1.6到3.7都是一样的,这是一个很好的信号,表明即使没有记录过,它也不会改变。 另一方面,还存在一些开放问题,旨在通过某种方式向库中添加和修改删除支持,例如#6818。 在

你自己做同样的事其实并不难。 另一个优点是可以使用不同的规则、始终保持第一个、始终保持最新的修改时间等

您似乎在担心排序信息列表的性能成本,但这可能不值得担心。 读取和分析zip目录所需的时间很少显示成本。 在

但是没有必要在这里排序。 毕竟,您只需要为每个名称检索特定条目,而不是允许以特定顺序检索具有特定名称的所有条目。 因此,只能做ZipFile在内部所做的事情。 这需要线性时间来构建,每次搜索都需要一定的时间。 这里可以用任何规则。 输入={ }

for entry in zfh.infolist () :

ifentry.filenamenotinentries :

entries [ entry.filename ]=entries

这将保留具有任意名称的第一个条目。 如果要留下最后一个,只需删除if。 如果想在modtime之前保留最新的,只需更改ifentry.date _ time entries [ entry.filename ].date _ time 3360。 等等。 在

调用extract(home/msala/test.txt ) )时不再依赖于情况。 可以调用extract(entries ) (home/msala/test.txt ) ),获得该名称的第一名

不,不是。 在

要删除文件,请从中央目录中删除。 只是重写中心目录。 它位于zipfile的末尾,几乎总是小到可以容纳最小的软盘,因此被认为也适合DOS时代。 在

(但是,拔下计算机中间的插头可以得到没有中央目录的zipfile。 必须扫描并重建所有文件条目。 因此,许多更新的工具至少对于小文件,将整个文件重写为tempfile,并重命名原始文件以确保安全的原子写入。 )

对于至少某些早期工具,条目路径名的第一个字节可能会被NUL复盖,特别是对于大型归档文件。 但是,这并不是真的将条目标记为已删除,只是将其重命名为“ome/msala/test.txt”。 事实上,许多现代工具都将其视为确切的含义,并会犯一个奇怪的错误,表明找不到名为“ome”或{}的目录或其他有趣的东西。 此外,这还意味着目录条目中的文件名不再与文件条目标题中的文件名匹配,许多现代工具将zipfile标记为损坏。 在

在任何情况下,python zipfile模块都无法完成这两个任务,因此必须自己添加对zipfile子类的支持。 在

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。