如何在Python中解压缩文件但保留Zip文件夹

How to Unzip files in Python but Keep Zip Folder

我试图让python解压我文件夹中的所有文件,但我希望它将它们保存在一个新解压的文件夹中,该文件夹与它们来自的zip文件夹同名。

例如,如果我的文件夹"met"有两个zip文件夹:

folder1.zip:文件1

folder2.zip:文件2

我希望这些文件的结尾如下:

Met文件夹1文件1

Met文件夹2文件2

目前,该程序将两个文件都放在Met文件夹中:

metfile1和file2

1
2
3
4
5
6
7
8
9
#Unzip all zip files
zip_files = glob.glob(r"C:\Users\simon.rhee\Desktop\Met\*.zip")

i = 1
for u in zip_files:
    dir_name = os.path.splitext(u[0])
    zip_handler = zipfile.ZipFile(u,"r")
    zip_handler.extractall()
    print("Unzipping File #",i,"Complete")


首先,修正你的dir_name表达式,因为它当前不能正常工作,因为它将u的第一个字母传递给splitext,而不是取u的基数。

1
dir_name = os.path.splitext(u)[0]

然后,把多余的path论点传给extractall

1
zipfile.ZipFile.extractall(path=dir_name)

如果dir_name不存在,则创建它(用python 3.4测试)。