0.环境
ubuntu16.04
python3.6
tarfile
1.问题
tarfile.ReadError: not a bzip2 file
File "/usr/lib/python3.6/tarfile.py", line 1678, in bz2open
raise ReadError("not a bzip2 file")
tarfile.ReadError: not a bzip2 file
2.解决
改:
tar = tarfile.open(tar_path, "r:bz2")
为:
tar = tarfile.open(tar_path, "r")
3.完整代码
import tarfile
def extract(tar_path, target_path):
"""
Args:
tar_path: tar file local path(Both relative path and absolute path can be used)
target_path: the path you want to save your file
"""
try:
tar = tarfile.open(tar_path, "r")
tar.debug = 1
file_names = tar.getnames()
for file_name in file_names:
if not file_name.endswith(".jpg"):
continue
# print(file_name)
tar.extract(file_name, target_path)
tar.close()
except Exception as e:
print(e)
raise