Incontri e scontri usando Ubuntu 10.04 Lucid Lynx ed esplorando le distro Linux
Visualizzazione post con etichetta python. Mostra tutti i post
Visualizzazione post con etichetta python. Mostra tutti i post
venerdì 29 aprile 2011
Script ListDocSaver.py (facciamo un pò di ordine ... o quasi)
Ciao 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
Etichette:
programmazione,
python,
script,
utility
mercoledì 1 dicembre 2010
Nozioni di Python : modulo urllib
Ciao a tutti,
allora, non nascondo di essermi letteralmente innamorato del linguaggio Python.
Certo per ora rimane una passione "personale" non avendo purtroppo, la mia società, clienti che lo richiedono.
Volevo, un pò per me, un pò per chi invece vuole incominciare a masticare questo meraviglioso linguaggio di programmazione introdurre alcuni tips e concetti su di esso (limitatamente anche alla mia conoscenza per ora non completa).
Parlare, di dizionari, tuple e liste, non mi pare il caso visto che, almeno per chi viene da altri linguaggi di programmazione, dovrebbe averne già le tasche belle piene (:P :D).
Proprio in questi giorni, con il terremoto Wikileaks in atto, mi è venuto in mente : vediamo un pò su che server si trova il sito (non mi aspettavo di vedere e scovare i reali server protetti dal TOR ma solo per curiosità).
Allora per questa ed altre info che vedremo a breve, su Python esiste un modulo denominato urllib che ti permette appunto di ottenerle.
Apriamo, se ne siamo a disposizione l'idle di python (scaricabile su http://www.python.org/ gratuitamente sia per linux che win), importiamo il modulo con
import urllib
A questo punto dobbiamo riempire un oggetto (una semplice variabile) con tutti i dati di un determinato indirizzo, nel nostro caso (il sito di wikileaks)
site = urllib.urlopen('http://cablegate.wikileaks.org')
Ok a questo punto, con l'oggetto site abbiamo la possibilità di ottenere alcune info, in questo post, parlo principalmente di come tirare fuori le info sul server e come tirar fuori il codice html (della pagina iniziale chiaramente).
Memoriziamo le info o con la funzione info() o come faccio io con la proprietà headers :
info = site.headers
e stampiamo a video il risultato :
(non credo che ci siano problemi di privacy, visto che tutto il mondo sta dando la caccia ai server di Wikileaks :P , anche se poi... in questo caso i risultati ottenuti qui non significano niente ^^)
print info
Server: Apache/2.2.16 (Debian)
Last-Modified: Thu, 01 Jan 1970 00:00:00 GMT
ETag: "9812e-7092-0"
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
Content-Length: 28818
Date: Wed, 01 Dec 2010 10:21:03 GMT
X-Varnish: 835810462 835629066
Age: 1046
Via: 1.1 varnish
Connection: close
Ma guarda un pò ... non dormono questi... chissà perché usano Apache su Debian ;) e non Win ... :)
E così tanto per curiosita facciamoci tirar fuori (ma ne mostro solo in parte :P ) il codice html,
leggiamo prima site, memorizzandolo in una variabile
codiceHTML= site.read()
e poi stampiamolo
print codiceHTML
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'>
<head>
<title>Cable Viewer</title>
.....
Chiramente, è bene, aver l'abitudine, che dopo aver memorizzato in variabili quello che ci interessa, chiudere l'oggetto site con
site.close()
Sfruttando, moduli più avanti disponibili su internet a go go go ...,
si potrebbero tirar fuori dalle pagine le liste di link, il path delle immagini presenti ecc...
Spero nel gradimento del post come sempre
ciao ciao
Etichette:
guide,
programmazione,
python,
urllib
martedì 24 agosto 2010
Ma ma ma ma MAAANDRIVAAAAAA
Come accennato in un post precedente,
sempre dentro la rivista Linux Pro, acquistata ...bla bla bla...
oltre a Open Suse si ok.... bleah .... in confronto di questa mitica distro:
MANDRIVA !!!
Dico mitica, perché soprattutto nel mio caso e per il periodo di trasformazione (da sviluppatore .net a Python... anke se per ora solo x scopo personale )...
trovo in questa distro taaanti bei strumentini e ad esempio Eric bel GTK per lo sviluppo in Python (con tanto di ide annesso)...
consigliatissima !!!
ah parlo della 2010 Spring!
ah dimenticavo anche la presenza, di programmini per la progettazione di applicazioni e pianificazioni di Gantt ecc già inclusi!!!
sempre dentro la rivista Linux Pro, acquistata ...bla bla bla...
oltre a Open Suse si ok.... bleah .... in confronto di questa mitica distro:
MANDRIVA !!!
Dico mitica, perché soprattutto nel mio caso e per il periodo di trasformazione (da sviluppatore .net a Python... anke se per ora solo x scopo personale )...
trovo in questa distro taaanti bei strumentini e ad esempio Eric bel GTK per lo sviluppo in Python (con tanto di ide annesso)...
consigliatissima !!!
ah parlo della 2010 Spring!
ah dimenticavo anche la presenza, di programmini per la progettazione di applicazioni e pianificazioni di Gantt ecc già inclusi!!!
Iscriviti a:
Post (Atom)