import zipfile
week=20
z = zipfile.ZipFile("/content/sample_data/download_"+str(week)+".zip", 'w', zipfile.ZIP_DEFLATED)
startdir = "/content/sample_data/20"
os.chdir("/content/sample_data/20")
for dirpath, dirnames, filenames in os.walk(startdir):
for filename in filenames:
# print(os.path.join(fpath, filename))
z.write(filename)
z.close()
# shutil.rmtree(path)
!unzip "/content/sample_data/download_20.zip" -d "/content/sample_data/26"
如果压缩文件夹,不想把根路径的文件夹一块压缩,需要跳转到对应的文件夹内部进行文件的压缩。
os.chdir("/content/sample_data/20")
os.chdir("/content/sample_data")
s="/content/sample_data/download_"+str(week)+".zip"
g="/content/sample_data/"+str(week)
f = zipfile.ZipFile(s,'r')
for file in f.namelist():
f.extract(file,g+"/")
批量解压某一文件夹下的所有zip压缩包
import zipfile
import os
def makedir(path):
isExists=os.path.exists(path)
if isExists:
pass
else:
os.mkdir(path)
datapath="/content/sample_data"
os.chdir("/content/sample_data")
file_list = os.listdir(r'.')
for file_name in file_list:
if os.path.splitext(file_name)[1] == '.zip':
print(file_name)
file_zip = zipfile.ZipFile(file_name, 'r')
for file in file_zip.namelist():
makedir(datapath+"/"+file_name[:-4])
file_zip.extract(file,datapath+"/"+file_name[:-4]+"/")
file_zip.close()
os.remove(file_name)