Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 14, 2010 01:57:41

Imagican
От:
Зарегистрирован: 2010-09-14
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

IndexError: list index out of range

Здравствуйте уважаемые форумчане!

Возникла проблема при запуске скрипта через интерпретатор версии 2.6.6 на ОС Вин7 ультимейт.
Суть скрипта в том, что он сортирует картинки по разрешению и распихивает их по соответствующим папкам.
Скрипт не мой, взят с хабра - http://habrahabr.ru/blogs/python/85306/

Сам скрипт:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
“”“ sorts images by resolution”“”

import os,sys
from PIL import Image

# задаёт директорию для сортировки
dirname = os.path.abspath(sys.argv)
try:
newdir = os.path.abspath(sys.argv)
except:
newdir = dirname

def image_sort(dirname, newdir, recur=0):
if not recur:print ‘sorting started …’ # если главная папка
else: print ‘sorting started in %s…’%dirname # если подпапка

# собирает все подпапки в список и рекурсивно обходит

imagelist =

if os.path.isdir(dirname):
for x in os.listdir(dirname):
absx = dirname+os.sep+x
if os.path.isfile(absx):imagelist.append(absx)
else:
#print ‘summon subsort in %s’%x
image_sort(absx, newdir+os.sep+x,recur=1)
# проходит по содержимому папки/подпапки
for name in imagelist:
try:
resolution = Image.open(name).size #получить разрешение
except IOError:
print ‘seems not image: ’+ name, ‘/n’
continue
imdir = ‘%sx%s’%(resolution,resolution)
imdir = os.path.join(newdir,imdir)
#если имя папки такое же как и разрешение картинки
if os.path.split(dirname) == os.path.split(imdir):
continue
elif not os.path.exists(imdir):
#print ‘making dir %s’%imdir
os.mkdir(imdir)
try:
os.system('move “%s” “%s”'%(name,imdir))
except WindowsError:
print ‘error with ’+ name, ‘/n’
if not recur:print ‘sorting completed!’

if __name__ == ‘__main__’:
image_sort(dirname, newdir)



Ошибка которую выдает



Отредактировано (Сен. 14, 2010 01:59:27)

Офлайн

#2 Сен. 14, 2010 02:07:30

Alex977
От:
Зарегистрирован: 2008-11-26
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

IndexError: list index out of range

А при запуске скрипта директорию с картинками в качестве параметра указываешь?
Что-то вроде такого:

python 1.py c:\pics



Офлайн

#3 Сен. 14, 2010 02:15:24

Imagican
От:
Зарегистрирован: 2010-09-14
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

IndexError: list index out of range

Alex977
А при запуске скрипта директорию с картинками в качестве параметра указываешь?
Что-то вроде такого:

python 1.py c:\pics
Точно, вот в чем была проблема, спасибо :)
Запустил через cmd
1.py C:\users\YOURCOMP\1\
В статье не говорилось об этом, а поскольку не шарю в питоне не подумал даже что нужен доп.параметр если запускаешь из той же папки, в которой лежат файлы :)



Отредактировано (Сен. 14, 2010 02:18:22)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version