cleaning up options
This commit is contained in:
@@ -3,6 +3,28 @@ import zipfile
|
|||||||
import os
|
import os
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
|
|
||||||
|
def printProgressBar(iteration, total, prefix = '', suffix = '', decimals = 1, length = 100, fill = '█', printEnd = "\r"):
|
||||||
|
"""
|
||||||
|
Call in a loop to create terminal progress bar
|
||||||
|
@params:
|
||||||
|
iteration - Required : current iteration (Int)
|
||||||
|
total - Required : total iterations (Int)
|
||||||
|
prefix - Optional : prefix string (Str)
|
||||||
|
suffix - Optional : suffix string (Str)
|
||||||
|
decimals - Optional : positive number of decimals in percent complete (Int)
|
||||||
|
length - Optional : character length of bar (Int)
|
||||||
|
fill - Optional : bar fill character (Str)
|
||||||
|
printEnd - Optional : end character (e.g. "\r", "\r\n") (Str)
|
||||||
|
"""
|
||||||
|
percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total)))
|
||||||
|
filledLength = int(length * iteration // total)
|
||||||
|
bar = fill * filledLength + '-' * (length - filledLength)
|
||||||
|
print(f'\r{prefix} |{bar}| {percent}% {suffix}', end = printEnd)
|
||||||
|
# Print New Line on Complete
|
||||||
|
if iteration == total:
|
||||||
|
print()
|
||||||
|
|
||||||
|
|
||||||
def get_zip_path():
|
def get_zip_path():
|
||||||
while True:
|
while True:
|
||||||
zip_path = input("Enter the path to the zipped file: ")
|
zip_path = input("Enter the path to the zipped file: ")
|
||||||
@@ -20,16 +42,23 @@ def split_zip(input_zip_path, output_folder, max_group_size=4.5 * 1024 * 1024 *
|
|||||||
|
|
||||||
with zipfile.ZipFile(input_zip_path, 'r') as source_zip:
|
with zipfile.ZipFile(input_zip_path, 'r') as source_zip:
|
||||||
members = source_zip.namelist()
|
members = source_zip.namelist()
|
||||||
|
l = len(members)
|
||||||
group_size = 0
|
group_size = 0
|
||||||
group_number = 1
|
group_number = 1
|
||||||
|
i = 1
|
||||||
|
|
||||||
|
printProgressBar(0, l, prefix = 'Progress:', suffix = 'Complete', length = 100)
|
||||||
for member in members:
|
for member in members:
|
||||||
|
i = i + 1
|
||||||
|
printProgressBar(i, l, prefix = 'Progress:', suffix = 'Complete', length = 100)
|
||||||
# Read the file content from the zip archive
|
# Read the file content from the zip archive
|
||||||
with BytesIO(source_zip.read(member)) as file_content:
|
with BytesIO(source_zip.read(member)) as file_content:
|
||||||
# Check if adding this file would exceed the maximum group size
|
# Check if adding this file would exceed the maximum group size
|
||||||
if (group_size + len(file_content.getvalue())) > max_group_size:
|
if (group_size + len(file_content.getvalue())) > max_group_size:
|
||||||
|
print(f'{file_name}-group_{group_number}.zip done.', end="\r")
|
||||||
group_number += 1
|
group_number += 1
|
||||||
group_size = 0
|
group_size = 0
|
||||||
|
# i = 0
|
||||||
|
|
||||||
output_zip_path = os.path.join(output_folder, f'{file_name}-group_{group_number}.zip')
|
output_zip_path = os.path.join(output_folder, f'{file_name}-group_{group_number}.zip')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user