我试图使用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!")
有谁知道为什么会这样?
谢谢
您正在调用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()
您的代码应如下所示:
for f in os.listdir('.'):
if f.endswith(".zip"):
z = zipfile.ZipFile(f, 'r')
z.extractall(path=os.path.dirname(f))
z.close()