Chcę skompresować duże pliki tekstowe za pomocą Pythona (mówię o plikach> 20 GB). nie jestem jak każdy ekspert więc starałem się zebrać informacje i znalazłem następujące wydaje się działać:Duża kompresja plików z pytonem
import bz2
with open('bigInputfile.txt', 'rb') as input:
with bz2.BZ2File('bigInputfile.txt.bz2', 'wb', compresslevel = 9) as output:
while True:
block = input.read(900000)
if not block:
break
output.write(block)
input.close()
output.close()
Zastanawiam się, czy ta składnia jest poprawna i czy istnieje sposób, aby zoptymalizować go? Mam wrażenie, że czegoś tutaj brakuje.
Wielkie dzięki.
czym polega problem masz? Czy plik wyjściowy jest prawidłowy? – Daenyth
Dlaczego zdecydowałeś się przeczytać w 900000? – n1r3
Wygląda na to, że nieskompresowany rozmiar odpowiada i format wygląda dobrze. Nie jestem pewny, że wszystko, co koduję, uczy mnie sam python (i ogólnie: IT). Dzięki. Tak, wybieram myślenie o rozmiarze kawałków używanych przez bzip2, myślałem, że lepiej skompresować jedną porcję na raz, źle? – user1242959