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

时间:2016-12-29 13:50:21

标签: python file file-io zipfile

我有一个zipfile对象:

docx_zip = zipfile.ZipFile(path)

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

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

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

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

2 个答案:

答案 0 :(得分:1)

你能试试吗

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

答案 1 :(得分:1)

我不认为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]

我希望这会有所帮助。

相关问题