当前位置: 首页 > 面试题库 >

python / zip:如果提供了文件的绝对路径,如何消除zip存档中的绝对路径?

狄德泽
2023-03-14
问题内容

我在两个不同的目录中有两个文件,一个是'/home/test/first/first.pdf',另一个是'/home/text/second/second.pdf'。我使用以下代码压缩它们:

import zipfile, StringIO
buffer = StringIO.StringIO()
first_path = '/home/test/first/first.pdf'
second_path = '/home/text/second/second.pdf'
zip = zipfile.ZipFile(buffer, 'w')
zip.write(first_path)
zip.write(second_path)
zip.close()

我打开zip文件后,我创造,我有一个home在它的文件夹,然后有两个子文件夹在里面,firstsecond,则PDF文件。我不知道如何仅包含两个pdf文件,而不是将完整路径压缩到zip存档中。我希望我的问题很清楚,请帮忙。谢谢。


问题答案:

zipfile write()方法支持一个额外的参数(arcname),该参数是要存储在zip文件中的档案名称,因此您只需使用以下命令更改代码:

from os.path import basename
...
zip.write(first_path, basename(first_path))
zip.write(second_path, basename(second_path))
zip.close()

如果您有空闲时间,请阅读zipfile文档。



 类似资料:
  • 问题内容: 我正在使用Java 7和WatchService一起使用java.nio.file.WatchEvent。注册后,当我轮询ENTRY_MODIFY事件时,无法到达该事件文件的绝对路径。有什么方法可以从WatchEvent对象获取文件的绝对路径吗? 问题答案: 您需要从WatchKey获取父目录以解析完整路径 这段代码看起来像需要随附的文档一样,仅凭其本身就没有多大意义。他们对这种特定A

  • 问题内容: 给定路径,例如,我如何找到相对于Python中当前工作目录的文件的绝对路径?例如在Windows上,我可能会得到以下结果: 问题答案: 如果已经是绝对路径,也可以使用:

  • 主要内容:什么是当前工作目录,什么是绝对路径与相对路径,Python处理绝对路径和相对路径在介绍绝对路径和相对路径之前,先要了解一下什么是当前工作目录。 什么是当前工作目录 每个运行在计算机上的程序,都有一个“当前工作目录”(或 cwd)。所有没有从根文件夹开始的文件名或路径,都假定在当前工作目录下。 注意,虽然文件夹是目录的更新的名称,但当前工作目录(或当前目录)是标准术语,没有当前工作文件夹这种说法。 在 Python 中,利用 os.getcwd() 函数可以取得当前工作路径的字

  • 我正试图在我的Android应用程序中导入sky.csv文件。 请帮我做这个。我试过这么多方法。然而,我没有得到任何适当的解决办法。

  • 问题内容: 如果使用绝对路径,则无法将整个目录移动到新位置。如果使用相对路径,则无法将单个文件移动到新位置。 这里有什么解决方案?您是否设置了一个包含根路径并从那里开始的配置文件?还是您有类似的规则:永不移动文件? 我在某些项目中看到人们使用dirname( FILE )。我的意思是,为什么不简单地将其删除,因为目录名还是相对的(取决于文件所在的位置)? 问题答案: 您应该使用一个配置文件,该配置

  • 问题内容: 我正在编写一个程序,其中的一个组件必须能够采用给定的路径(例如或)和基于该位置的相对路径(例如或或)并产生绝对路径由相对路径暗示。考虑以下目录树。 该文件包含一个链接,如。该计划获得通过或,并将其与结合来获得。 同样,文件具有链接,程序需要从该链接返回。有合理的方法做到这一点吗? 谢谢。:) 编辑: 谢谢斯蒂芬·温伯格!对于未来的每个人,这是我使用的代码。 问题答案: 在与使用时应该做