From 6b6c06d0e5e918abfa7a5975ee34ae0244ecc54b Mon Sep 17 00:00:00 2001 From: Tristan Smith Date: Fri, 5 Apr 2024 23:16:37 -0400 Subject: [PATCH] Refactor zipremove.py to process all ZIP files in a directory --- zipremove.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/zipremove.py b/zipremove.py index 6b5e5a5..b8a9bdc 100644 --- a/zipremove.py +++ b/zipremove.py @@ -2,27 +2,30 @@ import zipfile import os import sys import tempfile +from pathlib import Path def filter_and_repack_zip(zip_path): - # Temporary directory to hold the contents we want to keep temp_dir = tempfile.TemporaryDirectory() new_zip_path = os.path.join(temp_dir.name, 'new_archive.zip') with zipfile.ZipFile(zip_path, 'r') as original_zip: with zipfile.ZipFile(new_zip_path, 'w') as new_zip: for file in original_zip.namelist(): - # Conditions for keeping the file if "(USA" in file or "(USA, Europe)" in file: new_zip.writestr(file, original_zip.read(file)) - - # Replace the original zip file with the new one + os.replace(new_zip_path, zip_path) +def process_directory(directory_path): + for zip_file in Path(directory_path).glob('*.zip'): + print(f"Processing {zip_file}") + filter_and_repack_zip(zip_file) + print("All ZIP files processed.") + if __name__ == "__main__": if len(sys.argv) != 2: - print("Usage: python script.py ") + print("Usage: python script.py ") sys.exit(1) - zip_file_path = sys.argv[1] - filter_and_repack_zip(zip_file_path) - print(f"Processed {zip_file_path}") + directory_path = sys.argv[1] + process_directory(directory_path)