Files
2025-05-20 11:57:43 -04:00

30 lines
1.0 KiB
Python

#!/usr/bin/env python
import tarfile
import os
for tar_file in ('pres.tar', 'NOT_A.tar', 'potus.tar.gz'): # <1>
filename = os.path.join('../DATA', tar_file)
is_valid = tarfile.is_tarfile(filename) # <2>
text = 'IS' if is_valid else 'IS NOT'
print("{} {} a tarfile".format(filename, text))
print()
with tarfile.open('../DATA/pres.tar') as tarfile_in: # <3>
for member in tarfile_in: # <4>
print(member.name, member.size) # <5>
print()
with tarfile.open('../DATA/pres.tar') as tarfile_in:
tarfile_in.extract('presidents.txt', path='../TEMP') # <6>
with tarfile.open('../DATA/potus.tar.gz') as tarfile_in:
tarfile_in.extract('presidents.csv', path='../TEMP') # <6>
with tarfile.open('../TEMP/text_files.tar', 'w') as tarfile_out: # <7>
tarfile_out.add('../DATA/parrot.txt') # <8>
tarfile_out.add('../DATA/alice.txt') # <8>
with tarfile.open('../TEMP/more_text_files.tar.gz', 'w:gz') as tar_gz_write: # <9>
tar_gz_write.add('../DATA/parrot.txt') # <8>
tar_gz_write.add('../DATA/alice.txt') # <8>