0

I have a tarball with several directories inside. I'm using Python to iterate through all files in the tarball without extracting it. The sample code belows can read README.md only, how can I read file1.txt, file2.txt and image1.jpg?

import tarfile

with tarfile.open("sample.tar") as tar_file:
    for member in tar_file.getmembers():
        if member.isfile():
            content = tar_file.extractfile(member).read()
            print(content)
        elif member.isdir():
            # TODO

Sample structure of tarball:

> sample.tar 
> ├── Documents 
> │   ├── file1.txt 
> │   └── file2.txt
> │── Pictures
> │   └── image1.jpg
> ├── README.md
  • Are you absolutely sure your tarball has that structure? `getmembers()` does iterate over everything in the tarball... – AKX Jun 02 '23 at 05:41
  • oh you're correct, my mistake. getmembers actually does iterate over everything. Thank for pointing out – Dang Huy Nguyen Jun 02 '23 at 07:11

0 Answers0