LINUX.ORG.RU

Ошибка Memory Error

 ,


0

1

Есть метод для формирования архива из txt файлов. Список self.file_list может состоять из 300 файлов каждый файл по 512кб

def _create_archive(self):
        bt = BytesIO()
        zip = zipfile.ZipFile(bt, 'w', zipfile.ZIP_DEFLATED)
        for item in self.file_list:
            zip.writestr('{}.txt'.format(str(item.Name())), item.Data())
        zip.close()
        bt.seek(0)
        resulting_file = ResultingFile()
        resulting_file.SetName('ARCHIVE_NAME')
        resulting_file.SetData(bt.getvalue())
        bt.close()
        return resulting_file

При формировании этого архива в строке resulting_file.SetData(bt.getvalue()) падает через раз ошибка Memory Error, ResultingFile:SetData: Unable to write content of vector to ResultingFile. Есть какие-нибудь советы по оптимизации кода формирования архива?

Экзотично. Так сломать голый питон…

Я бы попробовал на другой машине, мб что то аппаратное.

Или место на диске кончается.

Или (просто мысли вслух) превышен лимит числа открытых файлов…

AntonI ★★★★
()

Есть метод для формирования архива из txt файлов. Список self.file_list может состоять из 300 файлов каждый файл по 512кб

Есть какие-нибудь советы по оптимизации кода формирования архива?

Есть же готовые решения для упаковки, ты какой-то велосипед делаешь. Видал файлы с двойным расширением .tar.gz?

Crocodoom ★★★★★
()