【问题标题】:Add files from one tar into another tar in python在python中将文件从一个tar添加到另一个tar
【发布时间】:2013-07-11 01:55:42
【问题描述】:

我想制作一个 tar 的副本,删除一些文件(基于它们的名称和可能的其他属性,如符号链接等)。因为我已经在 python 中打开了 tar 文件,所以我想在 python 中执行此操作。我知道 TarFile.getmembers() 返回一个 TarInfo 对象列表,并且 TarFile.addfile(tarinfo) 接受一个 TarInfo 对象。但是当我将一个输入另一个时,会创建一个损坏的焦油(没有错误)。

import tarfile

oldtar=tarfile.open('/tmp/old.tar',"r")
newtar=tarfile.open('/tmp/new.tar',"w")
for member in oldtar.getmembers():
    if not member.name == 'dev/removeme.txt':
        newtar.addfile(member)
    else:
        print "Skipped", member.name
newtar.close()
oldtar.close()

【问题讨论】:

    标签: python tar


    【解决方案1】:

    您必须将fileobj-参数传递给addfile()

    newtar.addfile(member, oldtar.extractfile(member.name))
    

    【讨论】:

      猜你喜欢
      • 2020-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-12
      • 1970-01-01
      • 2021-05-27
      • 1970-01-01
      相关资源
      最近更新 更多