Python获得工作zip文件的完整路径

Posted

技术标签:

【中文标题】Python获得工作zip文件的完整路径【英文标题】:Python getting full path to working zip file 【发布时间】:2016-12-29 13:50:20 【问题描述】:

我有一个 zipfile 对象:

docx_zip = zipfile.ZipFile(path)

我想访问该 zip 文件的完整路径,以便将该路径传递给 ImageTk Image 对象,因此我需要该文件的路径。

image = Image.open(PATH_TO_IMAGE)
photo = ImageTk.PhotoImage(image)

所以我问:我怎样才能得到 PATH_TO_IMAGE ?

一种可选方法是将其解压缩到当前工作目录并为其提供新路径(文件名),但我想知道是否有直接从 zip 存档中获取完整路径的选项。

【问题讨论】:

【参考方案1】:

你可以试试

import os.path
docx_zip = zipfile.ZipFile(path)
print os.path.dirname(path)

【讨论】:

【参考方案2】:

我认为zipfile 不允许这样做。至少我在docs 中找不到任何东西,但是有一个解决方法。您可以从您的 ZipFile 创建一个 ZipInfo 对象,该对象将保存您想要的信息:

import zipfile
import os

docx_zip = zipfile.ZipFile(zip_path)
docx_info = docx_zip.getinfo(name_of_image_in_zip)
path_to_image = os.path.abspath(docx_info.filename)
# or get all paths:
docx_name_list = docx_zip.infolist()
paths_to_images = [os.path.abspath(x.filename) for x in docx_name_list]

我希望这会有所帮助。

【讨论】:

以上是关于Python获得工作zip文件的完整路径的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Python 创建文件路径的 zip 文件,包括空目录?

Python在Zip文件中打开文件[关闭]

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

如何将 SVN 工作副本中的修改保存到 zip 文件

无法打开 zip 和 gz 中的文件

Python - 如何将多个文件夹从路径压缩到单个 zip 文件?