Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 18, 2014 21:28:56

PyNovice
Зарегистрирован: 2014-09-18
Сообщения: 17
Репутация: +  2  -
Профиль   Отправить e-mail  

Pillow проблема с GIF

Приветствую форумчан.
python 3.4.1
отказывается работать os.remove в коде

from PIL import Image
import os
file = 'D:\\SCRIPTTEST\\12.gif'
im = Image.open(file)
nim = Image.new('RGB', (width,height), (255,255,255))
nim.paste(im)
nim.save('12.jpg', subsampling=0, quality = 100)
os.remove(file)

выдает
File "D:\SCRIPTTEST\test.py", line 8, in <module>
builtins.PermissionError: [WinError 32] Процесс не может получить доступ к файлу, так как этот файл занят другим процессом: 'D:\\SCRIPTTEST\\12.gif'

С png и jpg этот код работает нормально, исходник удаляется.
Уже всю голову сломал.

Офлайн

#2 Сен. 18, 2014 21:47:42

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

Pillow проблема с GIF

Попробуй перед os.remove() вставить im.close() .



Офлайн

#3 Сен. 18, 2014 22:22:08

PyNovice
Зарегистрирован: 2014-09-18
Сообщения: 17
Репутация: +  2  -
Профиль   Отправить e-mail  

Pillow проблема с GIF

py.user.next
Попробуй перед os.remove() вставить im.close() .
Та же ошибка доступа.
Кстати пробовал на 2 разных компах, все то же самое. Т.о. проблему с системой можно исключить. Меня смущает что если бы проблема носила массовый характер то можно было бы найти подобное в интернете, да вот ничего похожего нигде не нашел. Отсюда и решил что что-то делаю не то.

Офлайн

#4 Сен. 19, 2014 17:09:48

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Pillow проблема с GIF

А не может его какая-нибудь индексация файлов держать? Что FileMon показывает? Какой процесс держит?



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#5 Сен. 19, 2014 19:43:34

PyNovice
Зарегистрирован: 2014-09-18
Сообщения: 17
Репутация: +  2  -
Профиль   Отправить e-mail  

Pillow проблема с GIF

Спасибо всем за комментарии. Нашел решение, но причину так и не понял.
Для того чтобы исходная картинка удалялась надо перед os.remove добавить del im

from PIL import Image
import os
file = 'D:\\SCRIPTTEST\\12.gif'
im = Image.open(file)
nim = Image.new('RGB', (width,height), (255,255,255))
nim.paste(im)
nim.save('12.jpg', subsampling=0, quality = 100)
del im
os.remove(file)

Отредактировано PyNovice (Сен. 19, 2014 19:44:01)

Офлайн

#6 Сен. 20, 2014 00:00:56

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

Pillow проблема с GIF

Скорее всего, дело в сырости PIL для третьего питона. Выпускают её, работающей наполовину. Походу, тестов не писали, поэтому и не знают о таких мелочах.



Отредактировано py.user.next (Сен. 20, 2014 00:01:55)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version