2016-12-29 5 views
0

У меня есть ZipFile объект:Python полный путь к работе архива

docx_zip = zipfile.ZipFile(path) 

Я хочу, чтобы получить доступ к полному пути этого почтового файла, чтобы пройти этот путь к ImageTk изображение объекта, так что я нужен путь к этому файлу.

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) 
1

Я не думаю, что zipfile позволяет это сделать. По крайней мере, я ничего не могу найти в docs, но есть обходное решение. Вы можете создать ZipInfo объект из ZipFile, который будет содержать информацию, которую вы хотите:

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] 

Я надеюсь, что это помогает.