我试图使用ZipFile模块提取一个封闭的zip,但是:
“open(),read()和extract()方法可以采用文件名或ZipInfo对象。”
def ExtractZip(zipFile, path):
zipfile.ZipFile.open(zipFile, 'r')
zipFile.extractall(path)
这是我的代码,它返回一个错误。 (我在使用.close()
运行此函数之前关闭了一个zipfile,我无法将其删除)
我该怎么做?
感谢
答案 0 :(得分:1)
假设您的文件为Archive.zip
:
然后,执行此操作:
import zipfile
f = zipfile.ZipFile('Archive.zip')
f.extractall()
就是这样。如果要将内容放在其他位置,也可以向path
提供可选的extractall
参数。
可以在Python文档here中找到更多信息。
答案 1 :(得分:0)
这就是我使用zipfile访问档案的方式。
如果有一个包含这些文件的zip文件夹:
import zipfile
zippedArchive = zipfile.ZipFile('Scripts.zip')
print zippedArchive.open("Scripts/PlayPauseYouTube.scpt").read()
将打印PlayPauseYouTube.scpt
文件的内容。
如果您想提取 zip存档中的所有文件,就像在其他位置一样,您可以使用zipfile.extractall
ZipFile.extractall([path[, members[, pwd]]])
将存档中的所有成员解压缩到当前工作目录。
path
指定要提取的其他目录。members
是可选的,必须是zipfile.namelist()
返回的列表的子集。pwd
是用于加密文件的密码。
import zipfile
zippedArchive = zipfile.ZipFile('Scripts.zip')
zippedArchive.extractall()
答案 2 :(得分:0)
显然,基于所有 ZipFile 示例,您需要将存档存储在一个变量中
def ExtractZip(zipFile, path):
archive = zipfile.ZipFile.open(zipFile, 'r')
archive.extractall(path)
答案 3 :(得分:0)
你的函数应该是什么样子
import zipfile
def extract_zip(path: str):
with zipfile.Zipfile(path) as file:
file.extractall()
这会将 zipfile 解压缩到它所在的同一目录中。虽然这样做更好,但它使用上下文管理器,在您完成工作后会自动为您关闭文件。
如果您想将 zipfile 解压缩到另一个文件夹中
import zipfile
def extract_zip(path: str, extract_to: str):
with zipfile.Zipfile(path) as file:
file.extractall(path=extract_to)
这会将文件解压缩到您指定的文件夹中。此外,使用这种方法,您无需像默认情况下那样将模式指定为读取。