我有两个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文件。我该如何解决这个问题?
答案 0 :(得分:0)
虽然这可能无法回答您关于为什么两个文件都无法解压缩您的代码的具体问题,但以下是解压缩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()