2016-12-29 16 views
0

作業へのフルパスを取得:Pythonは、私はZIPファイルオブジェクトを持っているzipファイル

docx_zip = zipfile.ZipFile(path) 

私はImageTk Imageオブジェクトにそのパスを渡すために、そのzipファイルの完全なパスにアクセスしたいので、私は必要そのファイルへのパス。

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

PATH_TO_IMAGEを取得するにはどうすればよいですか?

オプションは、現在の作業ディレクトリに展開して新しいパス(ファイル名)を与えることですが、zipアーカイブから完全なパスを直接取得するオプションがあるかどうかは疑問でした。

答えて

1

私はzipfileはこのためにできることはないと思う

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

を試すことができます。少なくとも私はdocsに何も見つかりませんでしたが、回避策があります。あなたが欲しい情報を保持するであろう、あなたのZIPファイルから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] 

私はこのことができます願っています。

関連する問題