分文件夹打包压缩ImageNet/train
import os
import tarfile
# 打开文件
# 选择train所在的路径
path = "/data/dataset/CLS-LOC/train/"
dirs = os.listdir(path)
# 把所有文件夹的名字(str)存到一个list of list中
# 每个element_list里有十个文件夹名
num = 0
pack_list = []
element_list = []
for idx, file in enumerate(dirs):
element_list.append(file)
if (idx + 1) % 40 == 0:
num += 1
print(num)
pack_list.append(element_list)
element_list = []
# 用一个循环来打包
for idx, filelist in enumerate(pack_list):
tar = tarfile.open('/data/dataset/CLS-LOC/splited_train_25x40/train'+str(idx)+'.tar', 'w') # 创建一个压缩包
for filename in filelist:
tar.add('/data/dataset/CLS-LOC/train/'+filename, arcname=filename)
tar.close()
最后结果是每个tar里有40个文件夹