使用ZipFile.extractall的TypeError

时间:2015-08-18 13:27:20

标签: python

我正在尝试使用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!")

有谁知道为什么会这样?

由于

2 个答案:

答案 0 :(得分: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()

答案 1 :(得分:0)

您的代码应如下所示:

for f in os.listdir('.'):
    if f.endswith(".zip"):
        z = zipfile.ZipFile(f, 'r')
        z.extractall(path=os.path.dirname(f))
        z.close()