我有一个压缩的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
有没有办法打开这个文件作为缓冲区来读取它?顺便问一下:什么是缓冲区?
答案 0 :(得分:1)
乍一看,我发现没办法让它进入一个开放的溪流。
您可以执行以下操作:
SD()
。另一个选项非常依赖于系统:您可以使用文件句柄并执行</ p>
SD('/dev/fd/%d' % f.fileno(), SDC.READ)
这是非常依赖于平台的(仅限Linux),如果SD()
任何机会mmap()
,它都会失败。