【发布时间】:2021-04-29 11:58:54
【问题描述】:
我有一个名为 model_A.zip 的 zip 文件,它是从 model_B.zip 重命名的。压缩model_B.zip的原始文件夹是model_B。我使用zipfile 提取它。
import zipfile
with zipfile.ZipFile('model_A.zip', "r") as zip_ref:
zip_ref.extractall(path_to_unzip)
解压后,文件夹名称变为model_B/。但是,我想要的是model_A/。我可以使用shutil.move(model_B, model_A)之类的函数,但问题是我不知道解压后的文件夹名称(如果model_A.zip从model_C.zip重命名,则文件夹名称为model_C)。
有没有办法在不进行额外操作的情况下获得model_A?
【问题讨论】:
-
我的猜测是问题不在于它是从
model_B.zip重命名。问题在于 zip 文件 包含 一个名为model_B的文件夹,因为这是最初添加到其中的文件夹。然后,默认名称是model_B.zip,但它没有链接到其中的文件夹。无论您将其解压缩到哪个文件夹,该 zip 文件的内容都将位于名为model_B的子文件夹中。您可以通过在 GUI 中打开 zip 文件来验证这一点 -
@PranavHosangadi 是的,这是我忘记的导入信息。我将编辑我的帖子。
-
什么文件夹的名字变成了
model_B? zip 文件的名称与其中成员的名称无关。无论如何,看起来zip_ref.extractall('model_A')会做你想做的事。 -
@martineau
zip_ref.extractall('model_A')将添加一个子文件夹,结果将是model_A/model_B/ -
我认为这不是真的——你真的尝试过吗?另外,
print(zip_ref.namelist())显示什么?