seven_zip

pyhelpers.store.seven_zip(path_to_zip_file, out_dir=None, mode='aoa', verbose=False, seven_zip_exe=None, **kwargs)[source]

Extract data from a compressed file using 7-Zip.

Parameters:
  • path_to_zip_file (str | os.PathLike) – The path where the compressed file is saved.

  • out_dir (str | None) – The directory where the extracted data will be saved; defaults to None.

  • mode (str) – The extraction mode; defaults to 'aoa'.

  • verbose (bool | int) – Whether to print relevant information to the console; defaults to False.

  • seven_zip_exe (str | None) – The path to the executable “7z.exe”; If seven_zip_exe=None (default), the default installation path will be used, e.g. “C:\Program Files\7-Zip\7z.exe” (on Windows).

  • kwargs – [Optional] Additional parameters for the function subprocess.run().

Examples:

>>> from pyhelpers.store import seven_zip
>>> from pyhelpers.dirs import cd, delete_dir
>>> zip_file_pathname = cd("tests\data", "zipped.zip")
>>> seven_zip(path_to_zip_file=zip_file_pathname, verbose=True)
7-Zip 20.00 alpha (x64) : Copyright (c) 1999-2020 Igor Pavlov : 2020-02-06

Scanning the drive for archives:
1 file, 158 bytes (1 KiB)

Extracting archive: \tests\data\zipped.zip
--
Path = \tests\data\zipped.zip
Type = zip
Physical Size = 158

Everything is Ok

Size:       4
Compressed: 158

Done.

>>> out_file_pathname = cd("tests\data\zipped", "zipped.txt")
>>> with open(out_file_pathname) as f:
...     print(f.read())
test
>>> output_dir = cd("tests\data\zipped_alt")
>>> seven_zip(path_to_zip_file=zip_file_pathname, out_dir=output_dir, verbose=False)
>>> out_file_pathname = cd("tests\data\zipped_alt", "zipped.txt")
>>> with open(out_file_pathname) as f:
...     print(f.read())
test
>>> # Extract a .7z file
>>> zip_file_path = cd("tests\data", "zipped.7z")
>>> seven_zip(path_to_zip_file=zip_file_path, out_dir=output_dir)
>>> out_file_pathname = cd("tests\data\zipped", "zipped.txt")
>>> with open(out_file_pathname) as f:
...     print(f.read())
test
>>> # Delete the directories "tests\data\zipped\" and "tests\data\zipped_alt\"
>>> delete_dir([cd("tests\data\zipped"), output_dir], verbose=True)
To delete the following directories:
    "tests\data\zipped\" (Not empty)
    "tests\data\zipped_alt\" (Not empty)
? [No]|Yes: yes
Deleting "tests\data\zipped\" ... Done.
Deleting "tests\data\zipped_alt\" ... Done.