Sì, però si riferisce all'output di uno script che viene eseguito, non delle funzioni/classi di un modulo; andrebbe bene se lo fai nello script che viene eseguito da command line. Inoltre sarebbe meglio scindere l'I/O dai calcoli, cioè avere funzioni che calcolano e altro codice che notifica (cosa si sta per fare, cosa è successo, gli eventuali errori generati dai calcoli); e appunto il parametro _output è un' "intruso" che non c'entra molto con lo scopo della funzione (che fa il resize). Per quello dicevo che logging sarebbe la soluzione adatta, siccome (per debug e altro) è lecito mettere dentro al codice roba che notifica quello che ti interessa; inoltre è più comodo del semplice print perchè puoi decidere se e quali notifiche escludere senza toccare il codice e senza fare controlli come ora.
Altrimenti, una soluzione alternativa per non fargli stampare nulla quando viene usato come modulo è importare print dal __future__ e mettere un'unico controllo all'inizio, faccio un esempio:
Codice: Seleziona tutto
crap0101@orange:/tmp$ cat p.py
from __future__ import print_function
if __name__ != '__main__':
def print (*a, **k):
pass
def foo():
print(__name__, "foo")
if __name__ == '__main__':
foo()
crap0101@orange:/tmp$ python p.py
__main__ foo
crap0101@orange:/tmp$ python
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import p
>>> p.foo()
>>>
Perchè l'output è per forza png? Io lascerei quello originale di ogni immagine, oppure permettere di sceglierlo.
Perche il formato png accetta la trasparenza, altrimenti oltre al formato dell'immagine ridimensionata gli devo chiedere l'eventuale colore delle bande.
Ciao e grazie
Sì giusto, in alternativa potresti ri-convertire l'immagine, ma forse è un lavoro di troppo.
EDIT: invece, nel file che viene eseguito come script, se non ti preoccupa troppo la retrocompatibilità, usa argparse che è molto più comodo di getopt e puoi fare facilmente robe complesse (inoltre, per le versioni <2.7 che non lo hanno, c'è su pypi).