【发布时间】:2017-12-17 21:46:24
【问题描述】:
我必须在一个目录中解压缩大约五十个 *.gz 文件。在每个 *.gz 文件中都有一个 *.TAR 文件和一些其他文件。 我正在尝试一个 python 脚本,它将 *.gz 文件的内容提取到一个目录中。但是,我无法将 *.TAR 文件提取到与 *.gz 的内容提取到的同一目录中。 脚本如下所示:
import tarfile
import os
import glob
basedir = "path_to _dir"
for i in glob.glob(basedir +"*.gz"):
a = os.path.basename(i)
b = os.path.splitext(a)[0]
c = os.path.splitext(b)[0]
os.mkdir(os.path.join(basedir,c))
t1 = tarfile.open(i)
t1.extractall(c)
for j in os.listdir(c):
if j.endswith('.TAR'):
print(j)
t2 = tarfile.open(j)
t2.extractall()
t2.close()
t1.close()
它给了我错误:
Traceback (most recent call last):
File "./untar.py", line 16, in <module>
t2 = tarfile.open(j)
File "/usr/lib64/python2.7/tarfile.py", line 1660, in open
return func(name, "r", fileobj, **kwargs)
File "/usr/lib64/python2.7/tarfile.py", line 1722, in gzopen
fileobj = bltn_open(name, mode + "b")
IOError: [Errno 2] No such file or directory: '0299_0108060501.TAR'
0299_0108060501.TAR 是包含在 *.gz 文件中的文件
在我看来,我从根本上做错了什么,但我不知道是什么。
【问题讨论】:
-
这里还有一些示例 tar 文件。