Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python获取工作zip文件的完整路径_Python_File_File Io_Zipfile - Fatal编程技术网

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

Python获取工作zip文件的完整路径,python,file,file-io,zipfile,Python,File,File Io,Zipfile,我有一个zipfile对象: docx_zip = zipfile.ZipFile(path) 我想访问该zip文件的完整路径,以便将该路径传递给ImageTkImage对象,因此我需要该文件的路径 image = Image.open(PATH_TO_IMAGE) photo = ImageTk.PhotoImage(image) 所以我问:我怎样才能得到路径到图像 一种可选方法是将其解压缩到当前工作目录,并为其提供新路径(文件名),但我想知道是否有直接从zip存档获取完整路径的选项。您能

我有一个zipfile对象:

docx_zip = zipfile.ZipFile(path)
我想访问该zip文件的完整路径,以便将该路径传递给
ImageTk
Image对象,因此我需要该文件的路径

image = Image.open(PATH_TO_IMAGE)
photo = ImageTk.PhotoImage(image)
所以我问:我怎样才能得到路径到图像

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

您能试试吗

import os.path
docx_zip = zipfile.ZipFile(path)
print os.path.dirname(path)
你能试试吗

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

我认为zipfile不允许这样做。至少我在地图上找不到任何东西,但有一个解决办法。您可以从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]

我希望这能有所帮助。

我认为zipfile不允许这样做。至少我在地图上找不到任何东西,但有一个解决办法。您可以从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]
我希望这有帮助