我正在尝试使用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!")
有谁知道为什么会这样?
由于
答案 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()