How to get the list of all files in a zip archive in Python
In this article we will learn about various ways to get detail about all files in a zip archive like file’s name, size etc.
How to find name of all the files in the ZIP archive using ZipFile.namelist() :
ZipFile class from zipfile module provide a member function i.e. ZipFile.namelist() to get the names of all files present it.
from zipfile import ZipFile
def main():
# To Create a ZipFile Object and load Document.zip in it
with ZipFile('DocumentDir.zip', 'r') as zip_Obj:
# To get list of files names in zip
fileslist = zip_Obj.namelist()
# Iterate over the fileslist names in given list & print them
for ele in fileslist:
print(ele)
if __name__ == '__main__':
main()
Output : DocumentDir/doc1.csv DocumentDir/doc2.csv DocumentDir/test.csv
Find detail info like name, size etc of the files in a Zip file using ZipFile.infolist() :
class from ZipFilezipfile module also provide a member function i.e. ZipFile.infolist() to get the details of each entries present in zipfile.
Here a list of ZipInfo objects is returned where each object has certain information like name, permission, size etc.
from zipfile import ZipFile
def main():
# To Create a ZipFile Object and load Document.zip in it
with ZipFile('DocumentDir.zip', 'r') as zip_Obj:
# Get list of ZipInfo objects
fileslist = zip_Obj.infolist()
# Iterate of over object’s list and also to access members of the object
for ele in fileslist:
print(ele.filename, ' : ', ele.file_size, ' : ', ele.date_time, ' : ', ele.compress_size)
if __name__ == '__main__':
main()
Output : DocumentDir/doc1.csv : 2759 : (2021, 01, 03, 21, 00, 02) : 2759 DocumentDir/doc2.csv : 2856 : (2021, 01, 25, 13, 45, 58) : 2856 DocumentDir/test.csv : 3458 : (2021, 02, 20, 20, 20, 41) : 3458
Details of ZIP archive to std.out using ZipFile.printdir() :
class from ZipFilezipfile module also provide a member function i.e. ZipFile.printdir() which can print the contents of zip file as table.
from zipfile import ZipFile
def main():
# To Create a ZipFile Object and load Document.zip in it
with ZipFile('DocumentDir.zip', 'r') as zip_Obj:
zip_Obj.printdir()
if __name__ == '__main__':
main()
Output : File Name Modified Size DocumentDir/doc1.csv 2021-01-03 21:00:02 2759 DocumentDir/doc2.csv 2021-01-25 13:45:58 2856 DocumentDir/test.csv 2021-02-20 20:20:41 3458
