python没有使用gzip读取gzip文件

Posted

技术标签:

【中文标题】python没有使用gzip读取gzip文件【英文标题】:python is not reading a gzip file with gzip 【发布时间】:2019-03-03 08:52:06 【问题描述】:

我正在尝试制作一个 tokanizer,我有一个我正在尝试使用 gzip 读取的文件。但它给出了以下错误:

Traceback (most recent call last):
  File "extract_sends.py", line 14, in <module>
    main()
  File "extract_sends.py", line 12, in main
    file_content = f.read()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/gzip.py", line 276, in read
    return self._buffer.read(size)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/gzip.py", line 463, in read
    if not self._read_gzip_header():
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/gzip.py", line 411, in _read_gzip_header
    raise OSError('Not a gzipped file (%r)' % magic)
OSError: Not a gzipped file (b'# ')

这是我的代码,我才刚刚开始,但如果 python 无法读取该文件,我就不远了。

import gzip
import sys
import re

def main():
    file = sys.argv[0]
    with gzip.open(file, 'rt') as f:
        file_content = f.read()

main()

文件是 .txt.gz 文件

【问题讨论】:

【参考方案1】:

您应该尝试最简单的调试技术:打印您尝试使用的值。

无论如何,如果您这样做了,您会看到sys.argv[0] 不是您在运行代码的命令之后放在命令行上的文件名参数 - 即sys.argv[1]

所以改变:

file = sys.argv[0]

收件人:

file = sys.argv[1]
print( “Reading from file”,file )

【讨论】:

谢谢!确实是这样!

以上是关于python没有使用gzip读取gzip文件的主要内容,如果未能解决你的问题,请参考以下文章

GZIP 与zip区别

Linux 常用的压缩命令有 gzip 和 zip

如何在 python 中读取 gzip netcdf 文件?

无法打开/解压缩 xml.gzip 或 zip.gzip 文件

使用管道在 Perl 中将管道文件输出到 gzip 的 Python 等效项

20-文件压缩打包-tar,zip,gzip