如何用Python读取可能或不被gzip压缩的文件?
我现在的代码
with gzip.open("file.xml") as f:
xml.sax.parse(f, reader)使用.xml.gz文件,但不处理.xml文件:
...
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的答案可以解决我的问题,但我正在寻找一个不涉及任何额外代码的打包解决方案。
发布于 2016-09-19 15:06:42
只需使用此answer中定义的函数来回答相关问题:
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您还可以扩展它以支持其他文件格式。
https://stackoverflow.com/questions/39575329
复制相似问题