Python:如何将文件从zip传递到从该文件读取数据的函数

时间:2016-08-10 14:51:35

标签: python zip

我有一个包含.nrrd类型文件的zip文件。 pynrrd lib带有读取功能。如何从zip中提取.nrrd文件并将其传递给nrrd.read()函数?

我尝试过关注,但这会在nrrd.read()行产生以下错误:

  

TypeError未被用户代码处理,file()参数1必须为   编码的字符串没有NULL字节,不是str

in_dir = r'D:\Temp\Slikvideo\JPEG\SV_4_1_mask'
zip_file = 'Annotated.mitk'

zf = zipfile.ZipFile(in_dir + '\\' + zip_file)

f_name = 'datafile.nrrd'    # .nrrd file in zip

file_nrrd = zf.read(f_name)    # pull the file from the zip

img_nrrd, options = nrrd.read(file_nrrd)    # read the .nrrd image data from the file

我可以将从.zip中提取的文件写入磁盘,然后使用nrrd.read()从磁盘读取它,但我相信还有更好的方法。

2 个答案:

答案 0 :(得分:0)

我认为你的方式很好......

这里有一个类似的问题:

Similar question

加上答案: 我认为问题可能是当你使用zipfile.ZipFile时你没有设置属性: 尝试使用:

zipfile.ZipFile (path,"r")

答案 1 :(得分:0)

以下作品:

file_nrrd = zf.extract(f_name)    # extract the file from the zip