С изменением сети, объемы растут и наступил такой момент, что мой старый скрипт отказался распаковывать 850 метровый архив с ошибкой "Memory Error".
Спасибо, что добрый человек (Гриша, привет!) подсказал как справиться с этим. Ну и спасибо, конечно stackowerflow.com
Итак код:
def read_by_pieces(file_object, piece_size = 1048576): ## 1Mb
while True:
data = file_object.read(piece_size)
if not data:
break
yield data
if __name__ == '__main__':
import gzip
gz = gzip.open ('d:\\2011-08-07_04.txt.gz') # largefile ~ 850 Mb
ungz = open ('d:\\2011-08-07_04.txt', 'wb')
for piece in read_by_pieces(gz, 10485760): ## 10 Mb
ungz.write(piece)
В результате, распаковывается 850 Mb файл в 3.5 Гб файл за примерно 5 минут.
Я думаю, можно добиться и лучших результатов, но мне сейчас нужно именно такое наколенное решение.