40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
import logging
|
|
import os
|
|
|
|
|
|
def get_size_folder(path):
|
|
folder_size = 0
|
|
for (path, dirs, files) in os.walk(path):
|
|
for file in files:
|
|
filename = os.path.join(path, file)
|
|
folder_size += os.path.getsize(filename)
|
|
return int(folder_size / (1024 * 1024))
|
|
|
|
|
|
def clear_tmp_folder(path, size):
|
|
if size == -1:
|
|
return
|
|
elif size == 0:
|
|
for (path, dirs, files) in os.walk(path):
|
|
for file in files:
|
|
filename = os.path.join(path, file)
|
|
os.remove(filename)
|
|
else:
|
|
if get_size_folder(path=path) > size:
|
|
all_files = ""
|
|
for (path, dirs, files) in os.walk(path):
|
|
all_files = [os.path.join(path, file) for file in files]
|
|
all_files.sort(key=lambda x: os.path.getmtime(x))
|
|
size_tp = 0
|
|
print(all_files)
|
|
for idx, file in enumerate(all_files):
|
|
size_tp += os.path.getsize(file)
|
|
if int(size_tp / (1024 * 1024)) > size:
|
|
logging.info("Cleaning tmp folder")
|
|
to_remove = all_files[:idx]
|
|
print(to_remove)
|
|
for f in to_remove:
|
|
logging.debug("Removing " + f)
|
|
os.remove(os.path.join(path, f))
|
|
return
|