Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 14, 2010 00:40:33

micpicode
От:
Зарегистрирован: 2010-11-13
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

IndexError: list index out of range

Пытаюсь рассортировать картинки лежащие кучей … по папкам … по разрешениям

Вот такой скрипт нашёл …

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


import os,sys
import time

dirname = os.path.abspath(sys.argv[1])
try:
newdir = os.path.abspath(sys.argv[2])
except:
newdir = dirname


def image_sort(dirname, newdir, recur=0):
if not recur:print 'sorting started ...'
else: print 'sorting started in %s...'%dirname
if not newdir: newdir = 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:
image_sort(absx, newdir+os.sep+x,recur=1)
for name in imagelist:
try:
file_date = time.localtime(os.stat(name).st_mtime)
except EnvironmentError, error:
print 'seems error: %s with '%error, name, '/n'
continue
imdir = '%s--%s--%s'%(file_date.tm_year,file_date.tm_mon,file_date.tm_mday)
imdir = os.path.join(newdir,imdir)
if os.path.split(dirname)[-1] == os.path.split(imdir)[-1]:
continue
elif not os.path.exists(imdir):
print 'making dir %s'%imdir
os.mkdir(imdir)
try:
os.system('move "%s" "%s"'%(name,imdir))
except EnvironmentError:
print 'error with '+ name, '/n'
if not recur:print 'sorting completed!'

if __name__ == '__main__':
image_sort(dirname, newdir)
создал файл … и из папки с картинками запустил

выдаёт такую ошибку …
Traceback (most recent call last):
File "sort", line 9, in <module>
dirname = os.path.abspath(sys.argv[1])
IndexError: list index out of range
Подскажите где посмотреть … сам не нашёл …



Офлайн

#2 Ноя. 14, 2010 01:41:05

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

IndexError: list index out of range

sys.argv хранит аргументы, переданные скрипту
надо запустить python script.py arg1



Офлайн

#3 Ноя. 14, 2010 01:50:54

micpicode
От:
Зарегистрирован: 2010-11-13
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

IndexError: list index out of range

Пишу … python script.py arg1

sorting started …
sorting completed!

но файлы никуда не перемещаются … и никаких изменений не происходит …



Офлайн

#4 Ноя. 14, 2010 01:51:37

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

IndexError: list index out of range

python script.py путь_до_картинок



Офлайн

#5 Ноя. 14, 2010 01:56:40

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

IndexError: list index out of range

if os.path.isdir(dirname):
эта штука по ходу не срабатывает, этот всё равно пишет sorting completed

там надо две папки указать, существующих (а то скрипт не сообщает о том, что папки неправильно переданы)



Офлайн

#6 Ноя. 14, 2010 02:12:06

micpicode
От:
Зарегистрирован: 2010-11-13
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

IndexError: list index out of range

написал

python путь_до_скрипта_script.py путь_до_картинок
выдаёт
sorting started ...
making dir /home/папку_с_названием__даты ... создаёт
sh: move: not found - пишет столько строк ... сколько картинок
sorting completed!
собственно создаёт пустые папки с датами и всё … все файлы на месте как были



Офлайн

#7 Ноя. 14, 2010 12:16:15

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

IndexError: list index out of range

micpicode
Пытаюсь рассортировать картинки лежащие кучей … по папкам … по разрешениям
Вот такой скрипт нашёл …
Выкиньте этот мусор. Он нерабочий. Напишите лучше какая сортировка вам нужна. Кто нибудь да откликнется, может и я если время будет ;)



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

Офлайн

#8 Ноя. 14, 2010 13:14:34

micpicode
От:
Зарегистрирован: 2010-11-13
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

IndexError: list index out of range

Буду очень благодарен … да думаю ещё кому пригодиться … т.к. в сети ничего не нашёл кроме этого скрипта …

В общем есть папка в которой кучей свалены файлы … а рассортировать требуется по разрешениям …
папки заранее не существуют … то есть скрипт должен брать изображение … смотреть его разрешение и класть в папку с названием
такого же разрешения … а если этой папки нет то создавать её …



Офлайн

#9 Ноя. 14, 2010 15:52:20

guranvir
От:
Зарегистрирован: 2010-03-16
Сообщения: 186
Репутация: +  0  -
Профиль   Отправить e-mail  

IndexError: list index out of range

Только я думаю не по разрешениям, а все же по расширениям.



Офлайн

#10 Ноя. 14, 2010 18:50:01

micpicode
От:
Зарегистрирован: 2010-11-13
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

IndexError: list index out of range

guranvir
Только я думаю не по разрешениям, а все же по расширениям.
нужно именно по разрешению

из википедии -

Разреше&#769;ние — величина, определяющая количество точек (пикселей) на единицу площади (или единицу длины). Термин обычно применяется к изображениям в цифровой форме, хотя его можно применить, например, для описания уровня грануляции фотопленки, фотобумаги или иного физического носителя. Более высокое разрешение (больше элементов) типично обеспечивает более точные представления оригинала.

Расширение имени файла (англ. filename extension, часто говорят просто расширение файла или расширение) — последовательность символов, добавляемых к имени файла и предназначенных для идентификации типа (формата) файла. Это один из распространённых способов, с помощью которых пользователь или программное обеспечение компьютера может определить тип данных, хранящихся в файле.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version