2

我有一个 tar 文件,tar1.tar,我想查看其中的文件并将所有传递my_test到另一个 tar 的文件,output.tar.

我一直在这样做,但我无法在我的新 tar 中打开文件:

import tarfile
tar = open("tar1.tar")
passing_members = []
for member in tar.getmembers():
    my_file = tar.extractfile(member)
    if my_test(my_file.read()):
        passing_members.append(member)

output_tar = tarfile.open("output.tar", "w|")
for member in passing_members:
    output_tar.addfile(member)

output_tar.close()
tar.close()

我真的不明白成员是什么,我想我需要添加类似 member.extractfile() 而不是 member 但我无法让它工作。

通过提取所有内容,我设法让它在测试文件上工作,但正确的文件需要很长时间。

事实上,我有很多 tar 文件,我想从中提取所有通过测试的文件,但如果我能做到这一点,我可以循环。

我正在使用 python 2.7

4

0 回答 0