[Python] Python 2 o 3 per i metadati delle foto?

Daniele Tricoli eriol a mornie.org
Lun 11 Ago 2014 22:45:23 CEST


Ciao Andrea,

On Monday 11 August 2014 19:55:51 Andrea Congiu wrote:
> Su quale versione mi consigliate di concentrarmi visto che sono
> all'inizio e parto da zero?

Python 3.

A meno che tu non sappia già (in base alle specifiche del tuo progetto) che ti 
servirà qualche package ancora fermo alla versione 2 del linguaggio ti 
conviene utilizzare Python 3.

> Quello che vorrei realizzare è un piccolo programma che mi permetta di
> manipolare il metadati delle mie foto analogiche passate allo scanner.
> Per essere più preciso ci inserirei la latitudine, la longitudine e
> l'angolo di ripresa rispetto al Nord Magnetico.
> 
> Per la latitudine e la longitudine uso DigiKam, ma non ho trovato
> nulla che con un'interfaccia grafica mi permetta di inserire un
> angolo, per ora sto usando Exiftool da riga di comando. Di seguito un
> piccolo esempio che inserisce nei metadati un angolo di 159 gradi con
> Nord magletico all'immagine albero.jpg
> 
> exiftool -GPSImgDirectionRef="M" -GPSImgDirection="159" albero.jpg

Che sistema operativo stai utilizzando? DigiKam è multipiattaforma anche se 
Linux e FreeBSD sono le piattaforme più supportate.
Se non hai il vincolo di dover supportare tutte le maggiori piattaforme (non 
ho idea di come si comporti su Mac OS X e Windows) puoi dare un'occhiata a 
GExiv2:

  https://wiki.gnome.org/Projects/gexiv2

In particolare:

  https://wiki.gnome.org/Projects/gexiv2/PythonSupport

Esiste anche un pyexiv2 (http://tilloy.net/dev/pyexiv2/) ma te lo sconsiglio 
per i seguenti motivi:
1. è deprecato in favore di GExiv2;
2. supporta solo Python 2 mentre GExiv2 supporta sia Python 2 che Python 3.

Esistono altri binding, ma non avendoli usati non posso pronunciarmi.

In realtà avevo provato anche questo:

    https://code.google.com/p/python-xmp-toolkit/

Ma l'API non era per niente pythonica.

> Per l'interfaccia grafica pensavo di usare html, cosa ne dite?

Questo dipende da te, da come preferiresti utilizzare il tuo programma, e 
dalle specifiche che ti darai.
Ad esempio, se uno dei tuoi casi d'uso prevede la possibilità di poterti 
interfacciare da un internet point, caricando sia la foto che i metadati 
allora una web application è indicata. Tuttavia, dato che a quanto hai detto 
(ed anche dal fatto che ti sia posto questa giustissima domanda, se usare il 
web o meno), stai cominciando adesso, forse ti conviene procedere per gradi ed 
usare inizialmente qualcosa di più semplice come un'interfaccia a linea di 
comando.

Ricorda sempre che l'iniziare con un'interfaccia non t'impone il divieto di 
aggiungerne altre: potresti anche decidere di avere un'interfaccia CLI, GUI e 
web da utilizzare a seconda dei casi! :)

> Ma qui un altro problemino, come faccio a far interagire in file html
> con i modili .py?

C'è tanta, *ma tanta* roba:

    https://wiki.python.org/moin/WebFrameworks

HTH,

-- 
 Daniele Tricoli 'Eriol'
 http://mornie.org


Maggiori informazioni sulla lista Python