如何读取gzip压缩的CZI图像?

时间:2019-01-10 16:53:22

标签: python

我正在成功读取第一个代码块的CZI图像。 我想用第二个代码块读取xx.czi.gz,但是失败了。 如何将“ czi.gz”读入数组?

非常感谢!

from czifile import CziFile
import gzip

fname='xxx.czi'
with CziFile(fname) as czi:
  image_arrays = czi.asarray()

fname2='xxx.czi.gz'
with gzip.open(fname2, 'rb') as f:
  with CziFile(f) as czi:
    image_arrays = czi.asarray()

2 个答案:

答案 0 :(得分:1)

我认为问题在于CziFile需要文件路径。在情况2中,给它一个文件描述符。我没有看到从stream / fd初始化的方法。在阅读czi之前,您可能必须先解压缩然后保存gz

答案 1 :(得分:0)

我认为@ Nico238是正确的-您需要先解压缩文件。但是,您不需要手动执行此操作。您可以使用Python程序来实现。看起来像这样:

import shutils
import gzip
from czifile import CziFile
fname='xxx.czi'
fname2='xxx.czi.gz'

# decompress fname2 and put it in fname
with gzip.open(fname2, 'rb') as f_in:
  with open(fname, 'wb') as f_out:
    shutil.copyfileobj(f_in, f_out)

with CziFile(fname) as czi:
  image_arrays = czi.asarray()

Source。)