无法导入python库'zipfile'

时间:2016-12-12 13:47:21

标签: python-2.7 zip

感觉像个笨蛋。我正在尝试与zip文件进行交互,似乎无法使用zipfile库。相当新的python

from zipfile import *
#set filename
fpath = '{}_{}_{}.zip'.format(strDate, day, week)

#use zipfile to get info about ftp file
zip = zipfile.Zipfile(fpath, mode='r')
# doesn't matter if I use     
#zip = zipfile.Zipfile(fpath, mode='w')
#or zip = zipfile.Zipfile(fpath, 'wb')

我收到此错误

  

zip = zipfile.Zipfile(fpath,mode ='r')

     

NameError:名称'zipfile'未定义

如果我只使用import zipfile,我会收到此错误:

  

TypeError:'module'对象不可调用

2 个答案:

答案 0 :(得分:4)

两种解决方法:

1)使用from,在这种情况下删除zipfile命名空间:

from zipfile import *
#set filename
fpath = '{}_{}_{}.zip'.format(strDate, day, week)

#use zipfile to get info about ftp file
zip = ZipFile(fpath, mode='r')

2)使用直接import,在这种情况下使用完整路径:

import zipfile
#set filename
fpath = '{}_{}_{}.zip'.format(strDate, day, week)

#use zipfile to get info about ftp file
zip = zipfile.ZipFile(fpath, mode='r')

并且您的代码中存在一个偷偷摸摸的错字:Zipfile应为ZipFile(大写F,所以我觉得回答时有点不好......

所以吸取的教训是:

  • 避免from x import y,因为编辑人员难以完成单词
  • 有一个合适的import zipfile和一个建议完成的编辑,你一开始就不会遇到这个问题。

答案 1 :(得分:1)

使用Python压缩文件的最简单方法:

import zipfile

zf = zipfile.ZipFile("targetZipFileName.zip",'w', compression=zipfile.ZIP_DEFLATED)
zf.write("FileTobeZipped.txt")
zf.close()