当前位置: 首页 > 面试题库 >

使Python 2.7代码与Python 2.6一起运行

徐新荣
2023-03-14
问题内容

我有这个简单的python函数,可以提取一个zip文件(与平台无关)

def unzip(source, target):
    with zipfile.ZipFile(source , "r") as z:
        z.extractall(target)
    print "Extracted : " + source +  " to: " + target

这在Python 2.7上运行良好,但在Python 2.6上失败:

AttributeError: ZipFile instance has no attribute '__exit__':

我发现此建议要求升级2.6-> 2.7
https://bugs.launchpad.net/horizo​​n/+bug/955994

但是是否可以移植上面的代码以使其与Python 2.6一起使用,并且仍然保持跨平台运行?


问题答案:

关于什么:

import contextlib

def unzip(source, target):
    with contextlib.closing(zipfile.ZipFile(source , "r")) as z:
        z.extractall(target)
    print "Extracted : " + source +  " to: " + target

contextlib.closing确实执行了该__exit__方法ZipFile中应该缺少的方法。即调用close方法



 类似资料:
  • 本文向大家介绍详解CentOS升级Python2.6到Python2.7并安装pip,包括了详解CentOS升级Python2.6到Python2.7并安装pip的使用技巧和注意事项,需要的朋友参考一下 现在大多数Centos6.x版本的系统python都是2.x,现因开发需求需要安装前端代码的构建工具glue,故必须要做python版本的升级 升级python 系统默认安装的python是2.6

  • 在我运行mongo恢复后,mongo服务无法自动启动,但如果我打开终端并运行monstar,服务运行完美。如果我关闭终端,我得到。有什么建议吗? 错误:无法连接到服务器127.0.0.1 shell/mongo。js:79 当我运行mon神时,我得到: MongoDB启动:pid=1875 port=27017 dbpath=/data/db/64位周四25 12:16:40db version

  • 问题内容: 所以我有一个Selenium功能测试套件。我已经在一些测试中测试了登录/注册功能,方法是将Selenium客户端导航到注册页面,输入用户名和密码,然后告诉Selenium使用相同的凭据登录。现在,我想测试站点“需要登录”区域的其他部分,而不必告诉Selenium单击并在测试浏览器中输入文本。 换句话说,我想使用这样的东西(我在视图单元测试中使用得很好): 在我的Selenium测试中,

  • 本文向大家介绍以一段代码为实例快速入门Python2.7,包括了以一段代码为实例快速入门Python2.7的使用技巧和注意事项,需要的朋友参考一下 Python由Guido Van Rossum发明于90年代初期,是目前最流行的编程语言之一,因其语法的清晰简洁我爱上了Python,其代码基本上可以 说是可执行的伪代码。 非常欢迎反馈!你可以通过推特@louiedinh或louiedinh AT g

  • 我在一个布局中使用了fab,但在运行时给出了以下错误:08-30 22:01:35.548 262 95-26295/? E/AndroidRuntime:致命异常:main process:com.example.ahr.a1000funnysms,pid:26295 Android.view.filflateException:二进制XML文件第30行:错误inflating类Android.

  • 问题内容: 我正在尝试整合同位素,但Iam在使其与Ajax一起使用时遇到问题。 这是代码: HTML只是“” 在同位素线被注释掉的情况下,我实际上按预期显示了div,但是由于我无法弄清楚如何在同位素线中工作,因此无法正常工作。 我正在尝试将同位素与“插入”方法集成在一起,而我无需使用ajax即可工作。 摘录自:http : //isotope.metafizzy.co/docs/adding- i