[linux] Ako premenovat 1500 fotiek

Jan ONDREJ (SAL) jan.ondrej na upjs.sk
Pondělí Říjen 2 08:23:50 CEST 2006


On Mon, Oct 02, 2006 at 12:34:35AM +0200, Jan Kunder wrote:
> Ing. Jan ONDREJ  wrote / napísal(a):
> >V pythone asi takto:
> >
> >-----------------------------------------------------------------------
> >#!/usr/bin/python
> >'''
> > This program is free software; you can redistribute it and/or modify
> > it under the terms of the GNU General Public License as published by
> > the Free Software Foundation; either version 2 of the License, or
> > (at your option) any later version.
> >'''
> >
> >import os,time

import sys
os.chdir(sys.argv[1])

> >
> >c=0
> >for fn in os.listdir('.'):

Posledny riadok vymaz a zamen ho za:

for fn in sorted(os.listdir('.'),key=lambda x: os.stat(x).st_mtime):
  if fn[-4:].lower()!='.jpg':
    continue

> >  c+=1
> >  nfn="%s---%05d" % (
> >    time.strftime('%Y-%m%d_%H%M',time.localtime(os.stat(fn).st_mtime)),c)
> >  print "%s -> %s" % (fn,nfn)
> >  os.rename(fn,nfn)
> >
> >-----------------------------------------------------------------------
> >:-)
> >
> >Dalsia dobra utilitka je "rename", ale prave toto asi nevie.
> >
> >				SAL
> >
> >On Thu, Sep 21, 2006 at 04:41:15PM +0200, Jan Kunder wrote:
> >>Ahoj.
> >>V tcmd som to robil takto
> >>[Y]-[M][D]_[hm]---0[C2362]
> >>co premenovalo COKOLVEK na rok-mesiacden_hodinaminuta(s0 na 
> >>zaciatku)---0(a counter+1 od daneho cisla)
> >>
> Vdaka pekne, *velmi* mi to pomohlo.
> Nakolko vsak python ani len netusim poprosim o 3 drobne featurky:

Nuz, skus sa naucit. Su na to velmi dobre weby, napr. http://www.py.cz/ .
Zaklady sa daju naucit za par minut, jednotlive kniznice spoznat uz trva
trocha dlhsie.

> 1. premenuvavaj *.jpg ONLY

Pridal som ti. Dufam, ze hned neposles poziadavku aj pre gify alebo png. :)

> 2. ./script adresar - premenuje vsetky .jpg v $adresar (inak premenuvava 
> aj script ;)

No ja som predpokladal, ze to hodis do /usr/local/bin a budes spustat
z tejto cesty priamo v adresari, kde to potrbeujes vykonat, ale ked si
chces skomplikovat situaciu, tak prosim.

> 3. subory v "." nacitavaj podla mtime od najstarsieho (lebo inak to robi 
> unsorted a to cislovanie fotiek na konci nie je chronologicke = je priam 
> chaoticke = unsorted = de facto random)

Tak tomuto vobec nechapem. Je uplne jedno v akom poradi to premenovavas,
stale to premenuje podla datumu/casu daneho suboru. Mozno len vypis mas
trocha chaoticky. Skus si na to pustit "| sort +2", ak ti to velmi vadi. :)
Skusil som to triedenie doopisat, ale neskusal som ho.

Pozor na indentaciu (pocet medzier na zaciatku kazdeho riadku), na co je
python citlivy. Nechavam to na domacu ulohu. :)
Skript je pod GPL, ostatne upravy necham na ostatnych. :)

			SAL



Další informace o konferenci linux