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 ZipFile
zipfile
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 ZipFile
zipfile
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