首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中作为缓冲区打开文件?

在Python中作为缓冲区打开文件?
EN

Stack Overflow用户
提问于 2014-02-05 11:10:08
回答 1查看 297关注 0票数 0

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

代码语言:javascript
复制
from subprocess import Popen, PIPE
f = Popen(['zcat', 'myfile.HDF.Z'], stdout=PIPE).stdout

为了获得数据,我需要使用pyhdf:

代码语言:javascript
复制
from pyhdf.SD import SD, SDC
mydata = SD(f, SDC.READ)

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

代码语言:javascript
复制
*** TypeError: coercing to Unicode: need string or buffer, file found

是否有方法打开此文件作为缓冲区读取它?顺便问一下:什么是缓冲器?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-05 11:24:08

我一眼就发现没有办法让它进入一条开放的溪流。

您可以执行以下操作:

  • 创建一个临时文件,您可以在其中解压该文件。
  • 将这个临时文件的名称指定给SD()

另一个选项是非常依赖于系统的:您可以接受文件句柄并执行以下操作

代码语言:javascript
复制
SD('/dev/fd/%d' % f.fileno(), SDC.READ)

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21575565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档