Python 3.x Python3:ZipFile实例没有属性';拔取全部';

Python 3.x Python3:ZipFile实例没有属性';拔取全部';,python-3.x,extract,zipfile,Python 3.x,Extract,Zipfile,该脚本仅在空闲时工作,但当我从命令行运行它时,它显示: 解压 fzip.extractall(pwd=b“mysecretpassword”) SyntaxError:无效语法 怎么了?它可以工作(Ubuntu 13.04): 顺便说一句,pwd应该是字节对象: >>> import sys >>> sys.version '3.3.1 (default, Apr 17 2013, 22:32:14) \n[GCC 4.7.3]' >>>

该脚本仅在空闲时工作,但当我从命令行运行它时,它显示:

解压

fzip.extractall(pwd=b“mysecretpassword”)

SyntaxError:无效语法

怎么了?

它可以工作(Ubuntu 13.04):

顺便说一句,
pwd
应该是字节对象:

>>> import sys
>>> sys.version
'3.3.1 (default, Apr 17 2013, 22:32:14) \n[GCC 4.7.3]'

>>> from zipfile import ZipFile
>>> f = ZipFile('a.zip')
>>f.extractall(pwd=“mysecretpassword”)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
extractall中的文件“/usr/lib/python3.3/zipfile.py”,第1225行
self.extract(zipinfo,path,pwd)
文件“/usr/lib/python3.3/zipfile.py”,第1213行,摘录
返回自我。提取成员(成员、路径、pwd)
文件“/usr/lib/python3.3/zipfile.py”,第1275行,在提取成员中
以self.open(成员,pwd=pwd)作为源\
文件“/usr/lib/python3.3/zipfile.py”,第1114行,打开
raise TypeError(“pwd:预期字节,获得%s”%type(pwd))
TypeError:pwd:应为字节,已获取
>>>f.extractall(pwd=b'mysecretpassword')
>>>
根据:

警告未经事先检查,切勿从不受信任的来源提取档案。文件可能是在外部创建的 路径,例如绝对文件名以“/”开头的成员或 带有两个点“.”的文件名

在版本3.3.1中更改:zipfile模块尝试阻止这种情况。请参见
extract()
注释


您确定使用的是Python 3吗?在2.6中添加了ExtAuto()方法,所以在此之前的版本不会有它。我在Python 3.3.0上工作,你可能会考虑问一个新问题,因为你的问题的标题不再相关。我编辑了这个问题。在命令提示符下运行脚本时仍然存在问题
                              ^
>>> import sys
>>> sys.version
'3.3.1 (default, Apr 17 2013, 22:32:14) \n[GCC 4.7.3]'

>>> from zipfile import ZipFile
>>> f = ZipFile('a.zip')
>>> f.extractall(pwd="mysecretpassword")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.3/zipfile.py", line 1225, in extractall
    self.extract(zipinfo, path, pwd)
  File "/usr/lib/python3.3/zipfile.py", line 1213, in extract
    return self._extract_member(member, path, pwd)
  File "/usr/lib/python3.3/zipfile.py", line 1275, in _extract_member
    with self.open(member, pwd=pwd) as source, \
  File "/usr/lib/python3.3/zipfile.py", line 1114, in open
    raise TypeError("pwd: expected bytes, got %s" % type(pwd))
TypeError: pwd: expected bytes, got <class 'str'>
>>> f.extractall(pwd=b'mysecretpassword')
>>>