Readd zip name generation
This commit is contained in:
parent
2c8660e01f
commit
c3742565b6
1 changed files with 49 additions and 0 deletions
49
tests/test_zip.py
Normal file
49
tests/test_zip.py
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
import zipfile
|
||||||
|
import shutil
|
||||||
|
import os
|
||||||
|
import glob
|
||||||
|
|
||||||
|
def create_zip_of_scan(folder_path):
|
||||||
|
"""Generate a zip file that can be downloaded, with all the scan files in it."""
|
||||||
|
|
||||||
|
print("Creating zip archive of images (may take some time)...")
|
||||||
|
zip_fname = f'{folder_path}.zip'
|
||||||
|
|
||||||
|
if not os.path.isfile(zip_fname):
|
||||||
|
shutil.make_archive(
|
||||||
|
folder_path,
|
||||||
|
"zip",
|
||||||
|
folder_path,
|
||||||
|
"images/"
|
||||||
|
)
|
||||||
|
|
||||||
|
current_zip = get_files_in_zip(zip_fname)
|
||||||
|
|
||||||
|
files = glob.glob(folder_path + '/**/*', recursive=True)
|
||||||
|
files = [i.split(f'{folder_path}\\')[1] for i in files]
|
||||||
|
|
||||||
|
with zipfile.ZipFile(zip_fname, mode="a") as zip:
|
||||||
|
for file in files:
|
||||||
|
if file not in current_zip and ".zip" not in file:
|
||||||
|
print(f'appending {file} to zip')
|
||||||
|
zip.write(os.path.join(folder_path, file), arcname=file)
|
||||||
|
else:
|
||||||
|
print(f'{file} is already in zip')
|
||||||
|
|
||||||
|
images_folder = os.path.join(folder_path, 'images')
|
||||||
|
# Promote key files to the top level of the zip
|
||||||
|
|
||||||
|
for fname in ["stitched_from_stage.jpg", "stitched.jpg"]:
|
||||||
|
fpath = os.path.join(images_folder, fname)
|
||||||
|
if os.path.exists(fpath):
|
||||||
|
print(f'copying {fpath} to upper level')
|
||||||
|
zip.write(fpath, arcname=fname)
|
||||||
|
|
||||||
|
def get_files_in_zip(zip_path):
|
||||||
|
|
||||||
|
zip = zipfile.ZipFile(zip_path)
|
||||||
|
zip = [os.path.normpath(i) for i in zip.namelist()]
|
||||||
|
# list available files in the container, relative to the base
|
||||||
|
return zip
|
||||||
|
|
||||||
|
create_zip_of_scan(r"G:\stitching_tests\zip_test")
|
||||||
Loading…
Add table
Add a link
Reference in a new issue