温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - Read .tar.gz file in Python
file gzip python tar

其他 - 在Python中读取.tar.gz文件

发布于 2020-04-30 23:50:39

我有25GB的文本文件。所以我将其压缩为tar.gz,它变为450 MB。现在我想从python中读取该文件并处理文本数据。为此,我提到了问题但就我而言,代码不起作用。代码如下:

import tarfile
import numpy as np 

tar = tarfile.open("filename.tar.gz", "r:gz")
for member in tar.getmembers():
     f=tar.extractfile(member)
     content = f.read()
     Data = np.loadtxt(content)

错误如下:

Traceback (most recent call last):
  File "dataExtPlot.py", line 21, in <module>
    content = f.read()
AttributeError: 'NoneType' object has no attribute 'read'

另外,还有其他方法可以执行此任务吗?

查看更多

提问者
KrunalParmar
被浏览
8
Raymond Hettinger 2016-05-27 12:23

文件告诉我们,没有被返回extractfile()如果该成员是不是一个普通的文件或链接。

一种可能的解决方案是跳过“ 无”结果:

tar = tarfile.open("filename.tar.gz", "r:gz")
for member in tar.getmembers():
     f = tar.extractfile(member)
     if f is not None:
         content = f.read()