Python Wand делает огромные Tempfiles - PullRequest
0 голосов
/ 11 декабря 2018

Что не так с моим ошибочным кодом?Wand делает временные файлы и не удаляет их.Я попытался os.remove, но затем я получаю сообщение об ошибке WindowsError: [Ошибка 32].

Что не так?

name = "testname"
fullFilename = "test" + "/" + str(name) + ".png"
with Image(file=url, resolution=400) as image:
    images=image.sequence
    for i in range(len(images)):
        Image(images[i]).save(filename=fullFilename)
        with Image(filename=fullFilename, resolution=300) as img:
                    img.compression_quality = 99
                    img.type = 'grayscale'
                    img.save(filename=fullFilename)
            with open(fullFilename, "rb") as imageFile:
                tiffData = imageFile.read()
                infoArray = ["2017","777","NO",tiffData,"OK",id]
                saveToDatabase(infoArray)

1 Ответ

0 голосов
/ 11 декабря 2018

Что не так с моим ошибочным кодом?

Похоже, вы выполняете много операций ввода-вывода.Попробуйте уменьшить код до минимального и полного.

with Image(file=url, resolution=400) as image:
    for page_src in image.sequence:
        with Image(page_src) as page_dst:
            page_dst.compression_quality = 99
            page_dst.type = 'grayscale'
            tiffData = page_dst.make_blob('TIFF')
            infoArray = ["2017","777","NO",tiffData,"OK",id]
            saveToDatabase(infoArray)

Wand делает временные файлы и не удаляет их.Я попытался os.remove, но затем я получаю сообщение об ошибке WindowsError: [Ошибка 32].

Похоже, что файлы доступны другой программе.Попробуйте удалить их после того, как python полностью завершит работу, и ImageMagick успеет выполнить процедуру завершения.

...