首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >透明的河流减压

透明的河流减压
EN

Stack Overflow用户
提问于 2016-09-19 14:13:11
回答 1查看 528关注 0票数 0

如何用Python读取可能或不被gzip压缩的文件?

我现在的代码

代码语言:javascript
复制
with gzip.open("file.xml") as f:
    xml.sax.parse(f, reader)

使用.xml.gz文件,但不处理.xml文件:

代码语言:javascript
复制
...
  File "/usr/lib/python3.5/gzip.py", line 409, in _read_gzip_header
    raise OSError('Not a gzipped file (%r)' % magic)

是否有一个内置的或重要的替代始终根据文件内容和/或文件扩展名返回未压缩流的gzip.open()调用?

related question的答案可以解决我的问题,但我正在寻找一个不涉及任何额外代码的打包解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-19 15:06:42

只需使用此answer中定义的函数来回答相关问题:

代码语言:javascript
复制
import gzip

def opener(filename):
    f = open(filename, 'rb')
    if f.read(2) == '\x1f\x8b':
        f.seek(0)
        return gzip.GzipFile(fileobj=f)
    else:
        f.seek(0)
        return f

您还可以扩展它以支持其他文件格式。

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

https://stackoverflow.com/questions/39575329

复制
相关文章

相似问题

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