Source code for AutomateTheBoringStuff.Ch09.P3_zipfile

"""ZIP file

This program manipulates a compressed file using :py:mod:`zipfile` and :py:mod:`os`.

Note:
    Works with provided ZIP file ``example.zip``.

"""


[docs]def main(): import zipfile, os os.chdir('./') # move to the folder with example.zip exampleZip = zipfile.ZipFile('example.zip') # Reading ZIP Files print(exampleZip.namelist()) # ['spam.txt', 'cats/', 'cats/catnames.txt', 'cats/zophie.jpg'] spamInfo = exampleZip.getinfo('spam.txt') print(spamInfo.file_size) # in bytes # 25 print(spamInfo.compress_size) # in bytes # 25 print('Compressed file is %sx smaller!' % (round(spamInfo.file_size / spamInfo.compress_size, 2))) # Compressed file is 1.0x smaller! # Extracting from ZIP Files #exampleZip.extractall() # extracts all files to current working directory exampleZip.extractall('./testdir') # auto-creates folder exampleZip.close() # Creating and Adding to ZIP Files newZip = zipfile.ZipFile('new.zip', 'w') # use 'a' to append newZip.write('./delicious/spam.txt', compress_type=zipfile.ZIP_DEFLATED) newZip.close()
if __name__ == '__main__': main()