【问题标题】:Can't import python library 'zipfile'无法导入 python 库'zipfile'
【发布时间】:2016-12-12 13:47:20
【问题描述】:

感觉自己像个笨蛋。我正在尝试与 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: name 'zipfile' 未定义

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

TypeError: 'module' 对象不可调用

【问题讨论】:

  • 对于from zipfile import *,您必须使用不带前缀的ZipFile。对于另一个错误,我认为某处有错字,它应该可以工作(您是否将您的文件称为zipfile.py?这不是一个好主意)
  • 如果我不使用我得到的前缀:NameError: name 'zipfile' is not defined

标签: python-2.7 zip


【解决方案1】:

两种修复方法:

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 和建议完成的编辑器,您一开始就不会遇到这个问题。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-08-11
      • 1970-01-01
      • 2020-11-07
      • 2016-09-18
      • 2018-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多