使用ZipFile.extractall的TypeError

问题描述 投票:1回答:2

我试图使用zipfile从文件夹中提取所有zip文件到该文件夹​​,但我得到一个TypeError:

TypeError: extractall() missing 1 required positional argument: 'self'

我的脚本看起来像

import os
from zipfile import *


for file in os.listdir():
  if file.endswith(".zip"):
    ZipFile.extractall(path= "M:\path\...\path", members=file,pwd="password!")

有谁知道为什么会这样?

谢谢

python
2个回答
1
投票

您正在调用ZipFile.extractall()函数错误。

您可以使用以下方法提取一个zip文件

import zipfile

zf = zipfile.ZipFile('myzip.zip', mode='r')
zf.extractall(pwd='password'.encode('ascii'))

zf.close()

要提取结尾为.zip的所有文件,您可以执行以下操作:

import zipfile
import glob

files = glob.glob('*.zip')
for f in files:
    zf = zipfile.ZipFile(f, mode='r')
    zf.extractall(pwd='password'.encode('ascii'))
    zf.close()

0
投票

您的代码应如下所示:

for f in os.listdir('.'):
    if f.endswith(".zip"):
        z = zipfile.ZipFile(f, 'r')
        z.extractall(path=os.path.dirname(f))
        z.close()
© www.soinside.com 2019 - 2024. All rights reserved.