Найти - Пользователи
Полная версия: IndexError: list index out of range
Начало » Python для новичков » IndexError: list index out of range
1
Imagican
Здравствуйте уважаемые форумчане!

Возникла проблема при запуске скрипта через интерпретатор версии 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)



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

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

python 1.py c:\pics
Imagican
Alex977
А при запуске скрипта директорию с картинками в качестве параметра указываешь?
Что-то вроде такого:

python 1.py c:\pics
Точно, вот в чем была проблема, спасибо :)
Запустил через cmd
1.py C:\users\YOURCOMP\1\
В статье не говорилось об этом, а поскольку не шарю в питоне не подумал даже что нужен доп.параметр если запускаешь из той же папки, в которой лежат файлы :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB