0

我有一个压缩的 HDF 文件 (HDF.Z),想这样打开它:

from subprocess import Popen, PIPE
f = Popen(['zcat', 'myfile.HDF.Z'], stdout=PIPE).stdout

为了获取我需要使用 pyhdf 的数据:

from pyhdf.SD import SD, SDC
mydata = SD(f, SDC.READ)

但是,这会导致错误消息:

*** TypeError: coercing to Unicode: need string or buffer, file found

有没有办法将此文件作为缓冲区打开以读取它?顺便说一句:什么是缓冲区?

4

1 回答 1

1

乍一看,我发现没有办法让它访问一个开放的流。

您可以执行以下操作:

  • 在解压文件的位置创建一个临时文件。
  • 将此临时文件的名称命名为SD().

另一个选项非常依赖于系统:您可以获取文件句柄并执行

SD('/dev/fd/%d' % f.fileno(), SDC.READ)

这非常依赖于平台(仅限 Linux),如果SD()mmap()任何机会,它将失败。

于 2014-02-05T11:24:08.290 回答