我正在成功读取第一个代码块的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()
答案 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。)