为什么它不展开两个 tar.gz 文件?

Why won't it expand both tar.gz files?

我有两个 tar.gz 文件,2014_SRS.tar.gz 和 2013_SRS.tar.gz。每个文件都包含一个名为 SRS 的文件夹,其中充满了文本文件。我从 ftp 服务器下载了这些。我想在 Python 中自动解压缩它们。这是我的代码:

import re
import ftplib
import os
import time
import tarfile
import sys

print('1')

tar = tarfile.open('2014_SRS.tar.gz')
tar.extractall()
tar.close()

print('2')

tar = tarfile.open('2013_SRS.tar.gz')
tar.extractall()
tar.close()

print('3')

此代码只打开第二个文件。我该如何解决才能打开这两个文件?

此外,我尝试使用 for 循环 运行 遍历整个目录。代码如下所示。

for i in os.listdir(os.getcwd()):
     if i.endswith(".tar.gz"): 
         tar = tarfile.open(i, "r:gz")
         tar.extractall()
         tar.close()

但是这给了我一个 EOFError。此外,在我 运行 位代码之前,我能够手动解压缩这两个文件。但是,在我 运行 它之后,并且在代码给我一个错误之后,我无法再手动解压缩 2014_SRS 文件。我该如何解决这个问题?

虽然这可能无法回答您关于为什么这两个文件不能用您的代码解压缩的具体问题,但以下是解压缩 tar.gz 个文件列表的一种方法。

import tarfile, glob

srcDir = "/your/src/directory" 
dstDir = "/your/dst/directory"

for f in glob.glob(srcDir + "/*.gz"):

    t = tarfile.open(f,"r:gz")

    for member in t.getmembers():
            t.extract(member,dstDir)
    t.close()