Reputation: 223
I want to unzip a specific named file located in a specific directory.
The name of the file = happy.zip
.
The location = C:/Users/desktop/Downloads
.
I want to extract all the files to C:/Users/desktop/Downloads
(the same location)
I tried:
import zipfile
import os
in_Zip = r"C:/Users/desktop/Downloads/happy.zip"
outDir = r"C:/Users/desktop/Downloads"
z = zipfile.ZipFile(in_Zip, 'r')
z.extractall(outDir, pwd='1234!')
z.close
But I got:
"TypeError: pwd: expected bytes, got str"
Upvotes: 3
Views: 8942
Reputation: 41
Please note that this will only work if the zip file has been encrypted using the "Zip legacy encryption" option when setting up the password.
Upvotes: 0
Reputation: 5613
In Python 2: '1234!'
= byte string
In Python 3: '1234!'
= unicode string
Assuming you are using Python 3, you need to either use b'1234!'
or encode the string to get byte string using str.encode()
this is useful if you have the password saved as a string passwd = '1234!'
then you can use:
z.extractall(outDir, pwd=passwd.encode())
or use byte string directly:
z.extractall(outDir, pwd=b'1234!')
Upvotes: 7