免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4395 | 回复: 3
打印 上一主题 下一主题

tarfile模块的问题 [复制链接]

求职 : Linux运维
论坛徽章:
203
拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:182015年亚洲杯之约旦
日期:2015-04-05 20:08:292015年亚洲杯之澳大利亚
日期:2015-04-09 09:25:552015年亚洲杯之约旦
日期:2015-04-10 17:34:102015年亚洲杯之巴勒斯坦
日期:2015-04-10 17:35:342015年亚洲杯之日本
日期:2015-04-16 16:28:552015年亚洲杯纪念徽章
日期:2015-04-27 23:29:17操作系统版块每日发帖之星
日期:2015-06-06 22:20:00操作系统版块每日发帖之星
日期:2015-06-09 22:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-09-15 17:04 |只看该作者 |倒序浏览
执行下面代码老是报错

#!/usr/bin/env python
# -*- coding:utf-8 -*-


import os
import sys
import re
import shutil
import tarfile




def a():
    with tarfile.open('/tmp/a.tgz', 'w:gz') as tar:
        tar.add('/tmp/aa.py', arcname='aa.py')
        tar.add('/tmp/22.txt', arcname='22.txt')
        tar.close()
    return 'haha'


if __name__ == '__main__':
    a()

       
报错内容
        python b.py
Traceback (most recent call last):
  File "b.py", line 40, in <module>
    a()
  File "b.py", line 31, in a
    with tarfile.open('/tmp/a.tgz', 'w:gz') as tar:
AttributeError: 'TarFile' object has no attribute '__exit__'
请问我怎麽做才能避免报错,还有,生成了a.tgz之后,发现a.tgz是空的,python版本是2.6.6
操作系统是centos6.6


论坛徽章:
1
15-16赛季CBA联赛之新疆
日期:2017-03-09 12:33:45
2 [报告]
发表于 2017-09-18 17:14 |只看该作者
本帖最后由 jeppeter 于 2017-09-18 17:15 编辑

回复 1# lyhabc

我测试过你的程序,是没有问题的。
我把你的程序修改成下面的,可以适应更多的情况
  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-


  3. import os
  4. import sys
  5. import re
  6. import shutil
  7. import tarfile




  8. def a():
  9.     with tarfile.open(sys.argv[1], 'w:gz') as tar:
  10.         for curf in sys.argv[2:]:
  11.             tar.add(curf,os.path.basename(curf))
  12.         tar.close()
  13.     return 'haha'


  14. if __name__ == '__main__':
  15.     a()
复制代码



由输入的命令行决定行为

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:09
3 [报告]
发表于 2017-09-20 17:20 |只看该作者
这种问题什么好问的  
错误提示不是已经告诉你了? 错误提示也不看就来问

2.6的的tarfile没有上下文方法,自己继承封装下上下文方法就是

求职 : Linux运维
论坛徽章:
203
拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:182015年亚洲杯之约旦
日期:2015-04-05 20:08:292015年亚洲杯之澳大利亚
日期:2015-04-09 09:25:552015年亚洲杯之约旦
日期:2015-04-10 17:34:102015年亚洲杯之巴勒斯坦
日期:2015-04-10 17:35:342015年亚洲杯之日本
日期:2015-04-16 16:28:552015年亚洲杯纪念徽章
日期:2015-04-27 23:29:17操作系统版块每日发帖之星
日期:2015-06-06 22:20:00操作系统版块每日发帖之星
日期:2015-06-09 22:20:00
4 [报告]
发表于 2017-09-21 10:16 |只看该作者
回复 3# lolizeppelin

谢谢提醒,已经解决了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP