Gdy dziś zaczynałem dzień miałem 47 GB wolnego miejsca na dysku w firmowym Macbooku, teraz mam 166 GB ;-)
Odpaliłem mój skrypt, który tu już chyba kiedyś wrzucałem i zrobił porządki ;-)
Mam tak, że mam 1 katalog gdzie trzymam dużo danych w JSONie i lubię te dane mieć i nie chcę ich kasować, ale 1 kawałek danych to tak z 2-6 GB ;-)
No i potraktowanie tego GZIPem robi różnicę ;-)
Mój skrypt, który jakiś czas temu tu chyba wklejałem i który napisałem razem z ChatGPT wygląda tak ;-)
import os
import gzip
import concurrent.futures
def compress_file(file_path):
if not file_path.endswith('.gz'):
print(f"Compressing file {file_path}...")
with open(file_path, 'rb') as f_in:
with gzip.open(f"{file_path}.gz", 'wb') as f_out:
f_out.write(f_in.read())
os.remove(file_path)
else:
print(f"File {file_path} is already compressed in GZIP format and will not be compressed again.")
def compress_files_in_folder(path):
file_count = len([f for f in os.listdir(path) if os.path.isfile(os.path.join(path, f))])
if file_count > 500:
print(f"Compressing files in directory {path}...")
with concurrent.futures.ThreadPoolExecutor() as executor:
for filename in os.listdir(path):
file_path = os.path.join(path, filename)
executor.submit(compress_file, file_path)
else:
print(f"The number of files in directory {path} is less than 500.")
def process_folders():
root_path = os.getcwd()
with concurrent.futures.ThreadPoolExecutor() as executor:
for dirpath, dirnames, filenames in os.walk(root_path):
executor.submit(compress_files_in_folder, dirpath)
process_folders()
I działa tak, że po prostu idzie po podfolderach i jeśli jest tam więcej niż 500 plików to wszystkie z nich pakuje GZIPem... jeśli jeszcze nie są spakowane ;-)
Do tego mam bibliotekę w Pythonie do czytania danych i zamiast robić json.loads("\n".join(open(fname).readlines()) robię util.load(fname) ;-)
Podobne postybetaGZIPem w plika z pomocą ChatGPT ;-)Odzyskać trochę miejsca na dysku... w macOS ;-)Jak zrobić plik OVPN (dla OpenVPN) w wersji unified format?Żenienie Todoist z Obsidian przy pomocy Pythona ;-)Mistral czeka na książkę
Brak komentarzy:
Prześlij komentarz