Trasferimento
Il blog si trasferisce su un nuovo spazio : http://www.akus85.netsons.org/
Add comment Gennaio 5, 2008
Generatore playlist…
Oggi vi presento la mia ultima “creazione”,in pratica crea un file playlist (m3u) contenenti gli mp3 che si trovano in una certa directory:
import os
import sys
def menu():
print "1-Locale"
print "2-Globale"
print "0-Esci"
return raw_input("Cosa vuoi fare?: ")
def locale():
a=False
path=os.getcwd()
lista_file=os.listdir(path)
file=open('playlist.m3u','w')
file.close()
for i in lista_file:
if (i[-4:]==".mp3"):
a=True
file=open('playlist.m3u','a')
percorso=path+'\\'+i
file.writelines(percorso)
file.write('\n')
if (a==True):
print "Playlist creata...!!!"
else:
print "Non ci sono file mp3 nella directory corrente..."
percorso=path+'\\'+'playlist.m3u'
os.remove(percorso)
def globale():
a=False
path=raw_input("Inserisci il path contenete i file da mettere in playlist: ")
lista_file=os.listdir(path)
file=open('playlist.m3u','w')
file.close()
for i in lista_file:
if(i[-4:]==".mp3"):
a=True
file=open('playlist.m3u','a')
percorso=path+'\\'+i
file.write(percorso)
file.write('\n')
if (a==True):
print "Playlist creata...!!!"
else:
print "Non ci sono file mp3 nella directory corrente..."
percorso=os.getcwd()+'\\'+'playlist.m3u'
os.remove(percorso)
#MAIN
scelta=menu()
if (scelta=="1"):
locale()
elif (scelta=="2"):
globale()
raw_input()
In pratica scegliendo l’opzione1 (locale) viene generata la playlist degli mp3 che si trovano nella stessa directory del nostro script python,se invece scegliamo l’opzione2 (globale) inseriamo noi la directory che contiene gli mp3.
Se volete il file eseguibile(exe) cliccate qui
Per ogni suggerimento,consiglio per migliorarlo o altro postate un commento in questo post oppure al forum di discussione di questo programma qui
5 comments Marzo 21, 2007
Lezione17-Creare Eccezioni…
Per seguire questa lezione bisogna avere chiaro il concetto di eccezione e della sua gestione tramite try…except…else…finally che se né è parlato nella lezione 11
Questa volta parleremo di come creare delle eccezioni per le nostre applicazioni.
Python stesso ha una serie di eccezioni “già pronte”,per visualizzare l’elenco completo cliccare qui
Ogni eccezione che dobbiamo creare deve derivare dalla classe Error o Exception.
Quindi definiamo una nuova classe con il nome della nostra eccezione che deriva dalla classe madre Excepition o Error in questo modo:
class NomeLinguaggio(Exception):
def __init__(self,name):
Exception.__init__(self)
self.name=name
try:
nome=raw_input(‘Inserisci nome di un linguaggio: ‘)
if (nome==”python”):
raise NomeLinguaggio(nome)
except NomeLinguaggio,name:
print “NomeLinguaggio: Non puoi utilizzare la parola python”
else:
print “Non e’ stata sollevata alcuna eccezione”
In questo modo se inseriamo la parola python verra sollevata l’eccezione NomeLinguaggio e stamperà a video il messaggio che ci avverte che non possiamo utilizzare quella parola,altrimenti verrà stampato che non è stata sollevata alcuna eccezione.
Add comment Marzo 13, 2007
Lezione16-Creare eseguibili…
Per distribuire le nostre applicazioni il più delle volte risulta “scomodo” dare il file .py anche perchè per poter funzionare l’utente deve aver installato python.
Se specialmente l’utente a cui dobbiamo dare a nostra applicazione usa Windows è più comodo passargli un file .exe
Per creare un eseguibile(exe) scarichiamo il modulo py2exe.
una volta installato apriamo il programma che dobbiamo convertire in eseguibileed all’inizio del file aggiungiamo queste righe:
from distutils.core import setup
import py2exe
setup(console=['NomeFile.py'])
salviamo il nostro file con il nome setup.py e dal terminale(per utenti unix) o da cmd.exe(per utenti Windows) ci portiamo nella directory dove si trova il nostro file e scriviamo:
python setup.py py2exe
compariranno un po di scritte ed alla fine se abbiamo fatto tutto correttamente dentro la directory del nostro file dovremmo avere due cartelle build e dist ,il nostro eseguibile si troverà all’interno della cartella dist.
Per testare il funzionamento dell’eseguibile appena creato sempre da terminale ci portiamo dentro la cartella dist e digitiamo:
NomeEseguibile.exe
Se invece vogliamo creare dei veri e propri installer con installazione guidata possiamo usare NSIS oppure InnoSetup.
9 comments Febbraio 21, 2007
aggiunta nuova sezione…
E’ stata aggiunta una nuova pagina che riguarda la programmazione in python per i dispositivi mobili (s60) gli aggiornamenti li trovate nella side-bar a destra.
Add comment Febbraio 20, 2007
Lezione15-Le classi in python…
Dopo aver introdotto i punti principali della programmazione ad oggetti,vediamo come implementarla in python tramite l’utilizzo delle classi.
Per creare una classe in python scriviamo:
class NomeDellaClasse : se è una “classe madre”(cioè non deriva da altre classi)
class NomeDellaClasse(NomeClasseMadre): se è una “classe figlia”
dopo la dichiarazione del nome della classe,inizializzaremo le variabili(i dati membro) che utilizzaremo nella classe,ed infine sotto i metodi(funzioni) della classe.
Ottenendo una struttura di questo tipo:
class NomeClasse:
{variabili}
{metodi}
oppure
class NomeClasse(ClasseMadre):
{variabili}
{metodi}
Per visualizzare meglio questi concetti passiamo subito ad un’esempio, implementando l’esempio dei computer di un ufficio che abbiamo visto nella lezione precedente:
Adesso scriviamo un’altro esempio dove la classe computer è la classe madre :
11 comments Febbraio 8, 2007
Lezione 14-Introduzione alla programmazione ad oggetti…
Python come i linguaggi ibridi(tipo C++) ci permette di implementare sia la programmazione procedurale che quella ad oggetti.
Quando scriviamo un programma con la programmazione procedurale ci serviamo di funzioni,procedure e strutture dati come liste,dizionari,etc..se decidiamo di modificare una parte del programma probabilmente dovremmo apportare delle modifiche strutturali ad una buona parte di esso perchè funzioni.
La programmazione ad oggetti invece ci permette un riutilizzo di codice senza apportare alcuna modifica,vediamo in che senso.
Un programma scritto tramite la programmazione orientata ad oggetti,è costituito da un’insieme di oggetti che interagiscono tra loro ognuno avente una propria struttura dati,siccome ogni oggetto funziona in “modo autonomo”,la programmazione ad oggetti si presta per lo sviluppo di software in team,in quanto ognuno può sviluppare un componente(oggetto)del programma senza preoccuparsi della struttura degli altri oggetti che ne faranno parte.
Per creare un’oggetto dobbiamo definire la classe d’appartenenza,definendo le funzioni dell’oggetto(metodi)e le variabili contenute in esso.
Supponiamo di volere scrivere un’archivio dei computer di un’uffico:
variabili:
nome computer
sistema operativo
ram
hard disk
metodi:
modifica sistema operativo
modifica ram
modifica hard disk
Una delle funzioni più importanti delle classi è l’ereditarietà , cioè se già abbiamo una classe con dei metodi che ci possono servire per un’applicazione possiamo prendere la classe che abbiamo già e creare una classe figlia che ha gli stessi metodi della classe madre a cui poi possiamo aggiungere altri metodi.
Ad esempio supponiamo che la classe madre sia la classe computer scritta sopra ,creiamo un’altra classe (chiamata computer2)che oltre ad avere le variabili ed i metodi sopra citati abbia:
variabili:
processore
scheda video
scheda audio
metodi:
cambia scheda video
Add comment Febbraio 7, 2007
Lezione 13-I Moduli…
Quando i programmi diventano più grossi non è buona scelta lasciare tutto su un’unico file,in quanto la gestione risulta più complicata.
Allora in questi casi conviene dividere il programma in sotto-programmi salvati in script e richiamarli nel corpo principale del nostro programma.Questi script esterni vengo chiamati moduli,già di essi ne esistono moltissimi per risolvere svariati problemi.
La sintassi per richiamarlo all’interno del nostro programma è:
import NomeModulo
per sapere i metodi che ha un determinato modulo direttamente dalla consolle interattiva scriviamo:
import NomeModulo
dir(NomeModulo)
ad esempio:
>>import time
>>dir(time)
['__doc__', '__name__', 'accept2dyear', 'altzone', 'asctime', 'clock', 'ctime', 'daylight', 'gmtime', 'localtime', 'mktime', 'sleep', 'strftime', 'strptime', 'struct_time', 'time', 'timezone', 'tzname']
usando il comando import,in pratica importiamo nel nostro programma tutte le funzioni(quelle elencate tramite il comando dir),e per richiamarne una dobbiamo utilizzare la sintassi:
NomeModulo.NomeFunzione
ad esempio se vogliamo stampare che giorno è oggi basta scrivere:
>>>import time
>>>lista=time.localtime() #ci crea una lista con giorno,mese,anno e l’orario
>>>giorno=lista[2] #estrapolo dalla lista il valore del giorno
se invece vogliamo importare nel nostro programma solo una funzione di un determinato modulo scriviamo:
from NomeModulo import NomeFunzione
scriviamo così:
>>>from time import daylight
>>>daylight
In questo caso dato che abbiamo importato solo una specifica funzione del modulo per richiamarla basta solo il nome della funzione.
Come potete capire non è possibile presentare tutti i moduli che sono disponibili perchè sono in numero elevato,per trovare l’elenco completo vi rimando all’indice ufficiale:http://docs.python.org/modindex.html
11 comments Febbraio 1, 2007
Lezione12-Le stringhe…
Oggi impariamo ad usare al meglio le stringhe che come ogni altro elemento in Python è in oggetto,quindi ha dei metodi che ne facilitano l’utilizzo.
I caratteri della stringa vengono indicizzati da 0 ad (n-1).
-Lunghezza:
supponiamo di avere una stringa(frase):
frase =’’supercalifragilissichespiralitoso”
se vogliamo sapere la lunghezza della stringa,basta scrivere
>>>len(frase)
>>>33
-Lo slicing:
Tramite lo slicing possiamo estrapolare dalla stringa una parte di essa,ad esempio
>>>frase[:10] #stampa i primi 10 caratteri
>>>supercalif
>>>frase[-10:] #stampa gli ultimi 10 caratteri
>>>piralitoso
>>>frase[2:8] #stampa dal terzo carattere al numero 8
>>>percal
>>>frase[::10] #stampa ogni 10 caratteri
>>>srh
1 comment Gennaio 30, 2007