Magazine Informatica
Script ListDocSaver.py (facciamo un pò di ordine ... o quasi)
Creato il 29 aprile 2011 da AldodoffiziCiao a tutti, sì sono stato maleducato nel post precedente a
non scusarmi...
Quindi chiedo scusa a tutti i lettori, per l'assenza prolungata dei mesi scorsi,
chiaramente causata da un periodo lavorativo molto impegnativo che di fatto mi ha portato via tempo e forze
per tener aggiornato il blog... bla bla bla..
Vorrei per farmi perdonare, un piccolo script che ho fatto per far pratica con Python che potrebbe interessare a qualcuno :) ..
Piccola premessa .... occorre una versione precedente alla 3.0...
Negli ultimi anni io, ma come tanti altri ho caricato il pc (vecchio e nuovo), hard disk, pennette... cd e dvd di software, musica, video, documenti ecc...
Il problema è che a distanza di tempo ci si ritrova a porsi una domanda tipo :
cavolo mo' su quale Dvd ho salvato la canzone "Whole Lotta Love" dei Led Zeppelin?
GRRRR !!! Eh... appunto :
Trovare una canzone che non si ascolta da tempo, un video, un programma ecc...
su dvd/cd/HD ecc .. può diventare stressante...
Un pò di meno, se si elenchi per esempio, il contenuto di un Dvd masterizzato in precedenza su un file di testo.
Un semplicissimo file di testo dove, il più semplice Ctrl+F può diventare prezioso.
Per permettere allo script di accettare argomenti, si utilizza il modulo sys, opportunamente passato al metodo main (alla fine dello script):
Per rendere possibile la lettura degli argomenti si deve importare il modulo getopt, con cui è appunto possibile stabilire il comportamento dello script in base al/ai parametri passati.
In questo script mi limito a gestire un solo parametro (-p e la sua versione estesa --path) e in alternativa i parametri -h (help) e -d (debug).
Senza dilungarmi troppo, provo a prendere i parametri, se qualcosa va storto mostro __doc__ (l'help), altrimenti passo al metodo popolaFileLog il valore del di -p
il risultato è il seguente :
Vengo infine al metodo popolaFileLog a cui appunto viene passato il percorso della directory (o dell'unità).
Piccola premessuccia, all'inizio dello script imposto la directory dove voglio salvare i file di testo creati, qui chiaramente ognuno dovrà impostare la directory scelta. ad esempio :
defaultPath='/home/nomeutente/Documenti/DVD-CD/'
Come lavora il metodo popolaFileLog..
Crea innanzitutto una lista in base al percorso passato... splittando il percorso con il carattere '/'
chiaramente a me interessa solamente il nome della directory e/o il nome dell'unità che per chi non lo sapesse su ubuntu solitamente viene mappata sotto /media/nomeUnita.
Poniamo ad esempio che ho passato allo script il percorso /media/mp3110428001 (dove mp3110428001 è l'etichetta assegnata al dvd/cd in fase di masterizzazione),
la lista ottenuta con il il metodo split sarà in questo caso
['', 'media', 'mp3110428001']
come detto mi interessa in questo caso mp3110428001, ma non sapendo (almeno quando si tratta di path di subdirectory) quanti elementi possa avere la lista ...
la inverto con il metoro reverse() che mi permetterà di avere il valore che mi interessa con lista[0] :
quindi compongo il path completo del file che andrò a creare che sarà così composto :
io ho usato la dicitura 'Contenuto'... ma ci si può mettere ciò che si vuole nel nostro caso il valore di pathFile sarà :
/home/nomeutente/Documenti/DVD-CD/Contenutomp3110428001.txt
a questo punto bisogna innanzitutto aprire il file in scrittura con
'w' sta per scrittura appunto :P
non ci rimane altro che sfogliare tutti i files, directory e subdirectory e scriverli nel file di testo ...
per memorizzare path, directory e files si utilizza il metodo walk del modulo os
e scorrere il tutto :
(nel mio caso ho lasciato anche subdirs per un eventuale uso ) chiaramente andando a capo ad ogni occorrenza trovata (con \n) ... chiaramente per ora non l'abbiamo nemmeno "toccato" il file... :)
per farlo bisogna "chiuderlo" con :
il metodo al completo sarà Richiamando quindi da riga di comando così : mi ritroverò nel file
/home/nomeutente/Documenti/DVD-CD/Contenutomp3110428001.txt dati tipo :
...
...
/media/MP3110428001/Led Zeppelin II/01 Whole Lotta Love.mp3
/media/MP3110428001/Led Zeppelin II/02 What is and What Should Never Be.mp3
/media/MP3110428001/Led Zeppelin II/03 The Lemon Song.mp3
/media/MP3110428001/Led Zeppelin II/04 Thank You.mp3
/media/MP3110428001/Led Zeppelin II/05 Heartbreaker.mp3
/media/MP3110428001/Led Zeppelin II/06 Living Loving Mad.mp3
/media/MP3110428001/Led Zeppelin II/07 Ramble On.mp3
/media/MP3110428001/Led Zeppelin II/08 Moby Dick.mp3
/media/MP3110428001/Led Zeppelin II/09 Bring It On Home.mp3
...
...
Cosicché la prossima volta potrò trovare, ad esempio la canzone che mi interessa più rapidamente...:)
per finire riporto il sorgente completo dello script ListDocSaver.py
Chiaramente, non nascondo che vorrei utilizzare questo script come base di partenza, magari per una classe di un futuro applicativo... magari pure con un qualche sorta di GUI grafica.. chissà! :D :D chiaramente attendo consigli e curiosità... che ho tanto da imparare :P
Possono interessarti anche questi articoli :
-
Dota 2 Reborn update: risolto grave bug per driver AMD su Linux [Changelog]
Uno dei MOBA più apprezzati al mondo del momento, DOTA 2, in versione reborn, è stato "vittima" (o il contrario) di un massivo bugfix, portando alla... Leggere il seguito
Da Desktopsolution
INFORMATICA, TECNOLOGIA -
Batman: Arkham Knight – Disponibile un fix amatoriale al blocco del frame rate s...
di Giorgio "Trex" TirettiL’edizione PC di Batman: Arkham Knight, che sta ricevendo non poche critiche nelle ultime ore, ha un frame rate fissato a 30 fps anche... Leggere il seguito
Da Videogiochi
GADGET, TECNOLOGIA, VIDEOGIOCHI -
148 Comandi per Windows da conoscere
Salve community, su Windows esistono dei comandi per eseguire qualcosa. Ogni volta che si desidera qualcosa, è sufficiente digitare il comando, e ci vogliono... Leggere il seguito
Da Desktopsolution
INFORMATICA, TECNOLOGIA -
TWRP si aggiorna alla versione 2.8.7.0 | Changelog ufficiale
Coloro che sono appassionati di modding Android sicuramente saranno molto contenti nel leggere che la TWRP, ovvero la custom recovery più diffusa tra la... Leggere il seguito
Da Paolo Dolci
INFORMATICA, TECNOLOGIA -
Benvenuti a Jurassic World - Recensione - PS4
Lego e dinosauri: una passione che non ha età! Avviato il gioco, sarete avvolti dagli archi delle note di John Williams che vi traghetteranno fino alle isole... Leggere il seguito
Da Intrattenimento
TECNOLOGIA, VIDEOGIOCHI -
Ant-Man: tanti dettagli interessanti dal film, un nuovo spot tv
di Fabio Mucci Vi abbiamo confermato la presenza di Janet Van Dyne/Wasp e poi vi abbiamo fornito anche dei dettagli, ora arrivano online nuovi interessanti... Leggere il seguito
Da Lightman
TECNOLOGIA, DA CLASSIFICARE