鱼C论坛

 找回密码
 立即注册
查看: 833|回复: 10

[已解决]有个目录,需要把里面的每一个文件单独打包 成 tar 求代码

[复制链接]
发表于 2018-8-16 11:54:34 | 显示全部楼层 |阅读模式
10鱼币
有个目录,需要把里面的每一个文件单独打包 成 tar 求代码,我自己写的里面内容 是空的
把 camera_images 目录里每一个单独打包
路径是     camera_images   /   1533890572 / 4045     /  图片
                                                                     ,4056    / 图片
                                                                      ,4057   / 图片


需要把 camera_images 目录里的    每一 个1533890752  单独打包成  tar  格式   
最佳答案
2018-8-16 11:54:35
for  root,dir, files in os.walk(fname+os.sep+num_dir)

最佳答案

查看完整内容

for root,dir, files in os.walk(fname+os.sep+num_dir)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-16 11:54:35 | 显示全部楼层    本楼为最佳答案   
for  root,dir, files in os.walk(fname+os.sep+num_dir)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-16 12:43:05 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-8-16 13:10:10 | 显示全部楼层
塔利班 发表于 2018-8-16 12:43
https://blog.csdn.net/u012234115/article/details/50250317
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import tarfile
  4. import os

  5. def tar_dir(srcPath,dstname):
  6.     tarHandle=tarfile.open(dstname,"w:gz")
  7.     for dirpath,dirs,files in os.walk(srcPath):
  8.         for filename in files:
  9.             tarHandle.add(os.path.join(dirpath,filename))
  10.             print filename+" tar succeeded"



  11. if __name__ == "__main__":
  12.     tar_dir('camera_images','tar_image')
复制代码




实现不了,这个代码是吧所有数据压缩到一个文件,
我需要的是所有的 数字目录单独压缩,保存到一个目录里
这是我的代码,但是压缩后的文件里是空的
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-

  3. import tarfile
  4. import os
  5. import sys

  6. def tar(fname):
  7.     dirs = os.listdir(fname)
  8.     #获取 camera_images 里的所有子目录
  9.     for num_dir in dirs:
  10.         #打包  所有子目录
  11.         t = tarfile.open(num_dir + ".tar.gz", "w:gz")
  12.         for  root,dir, files in os.walk(num_dir):
  13.             for file in files:
  14.                 fullpath = os.path.join(root, file)
  15.                 t.add(fullpath)
  16.         t.close()

  17. if __name__ == "__main__":
  18.     fname = "./camera_images"
  19.     tar(fname)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-8-16 14:29:58 | 显示全部楼层
塔利班 发表于 2018-8-16 12:43
https://blog.csdn.net/u012234115/article/details/50250317

大神,有什么办法吗,求解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-16 14:59:03 | 显示全部楼层
你到底是怎么个压缩法,你的 camera_images子文件件每个文件夹独立压缩?还是就 1533890572 文件夹压缩,还是里面的每一个图片单独压缩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-8-16 15:40:35 | 显示全部楼层
塔利班 发表于 2018-8-16 14:59
你到底是怎么个压缩法,你的 camera_images子文件件每个文件夹独立压缩?还是就 1533890572 文件夹压缩,还 ...

camera_images的 每个子文件夹独立压缩
1533890572,就是 camera_images 的子文件,有59个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-8-16 17:11:17 | 显示全部楼层
Python 问题还是这里好用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-8-17 10:19:03 | 显示全部楼层
塔利班 发表于 2018-8-16 11:54
for  root,dir, files in os.walk(fname+os.sep+num_dir)

大神,再问下
打包压缩后的的   路径是     camera_images   /   1533890572 / 4045     /  图片
                                                                     ,4056    / 图片
                                                                      ,4057   / 图片
                                       camera_images   /   1533890573 / 4046     /  图片
                                                                     ,4059   / 图片
                                                                      ,4088   / 图片
怎样把  camera_images   这个路径去掉,压缩后变成
                                                           1533890572 / 4045     /  图片
                                                                         ,4056    / 图片
                                                                          ,4057   / 图片
                                                           1533890573 / 4046     /  图片
                                                                     ,4059   / 图片
                                                                      ,4088   / 图片
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-17 10:32:36 | 显示全部楼层
没法去掉的你修改了root内容会添加不进去
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-8-17 12:06:21 | 显示全部楼层
塔利班 发表于 2018-8-17 10:32
没法去掉的你修改了root内容会添加不进去


非常感谢,我通过另外方法解决了,将目录单独压缩,然后删除
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-

  3. import tarfile
  4. import os
  5. import shutil

  6. def tar(fname):
  7.     t = tarfile.open(fname + ".tar.gz", "w:gz")
  8.     for root, dir, files in os.walk(fname):
  9.         print root, dir, files
  10.         for file in files:
  11.             fullpath = os.path.join(root, file)
  12.             t.add(fullpath)
  13.     t.close()

  14. if __name__ == "__main__":
  15.     dirs = os.listdir("../camera_images")
  16.     for i in range(len(dirs)):
  17.         if os.path.isdir(dirs[i]):
  18.             tar(dirs[i])
  19.         else:
  20.             pass
  21.         if os.path.isdir(dirs[i]):
  22.             shutil.rmtree(dirs[i])
  23.         else:
  24.             pass
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 13:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表