[Python] aituo per programmino: creazione password ed md5sum
Ciao a tutti, è un po' che non metto mano a python e sono comunque un novellino. Ho una necessità pratica da usare come esercizio per imparare qualcosa di più di python: volgio fare un piccolo script per generare delle password ed il relativo md5. Come input deve prendere i paramteri "numero di password da creare", "il nome del file" dove salvarle ed il "separatore" usato per separare le password e l'md5 nel file che verrà scritto. Ho creato lo script ma NON SO COME SCRIVERE SU UN FILE IL RISULTATO. ecco lo script: -- # coding=utf-8 import md5 import random def genpasswd (lenght=8): passwd="" for num in random.sample(range(0,10), lenght): passwd += str(num) return passwd def genlist (records, separator): c = 0 passwd = "" md5sum = "" record = [] passwd_list = [] while c < records: new_passwd = genpasswd() new_md5 = md5.new (new_passwd).hexdigest() + separator new_passwd += separator record = [new_passwd, new_md5] passwd_list.append (record) c += 1 return passwd_list def genfile (filename, records=1, separator=';'): passwd_list = genlist(records, separator) print "devo scrivere i seguenti record sul file ", filename for record in passwd_list: #scrivi i record su un file di testo print record genfile ("prova", 4) Mi potete cortesemente aiutare a completare questo script? Aggiungete naturalmente i vostri suggerimenti per migliorarlo. Googlando ho trovato qualche spunto def dsvgen(filename,separator=':'): """generates a list of values for each line in a dsv file >>> for row in dsvgen('myfilename'): print row """ print "script executed" inpfile=open(filename) for line in inpfile: yield line.strip().split(separator) inpfile.close() Qua ho trovato dei metodi che hanno a che fare con la scrittura dei file http://docs.python.it/html/lib/bltin-file-objects.html ma non spiega quando usarli. Immagino ad esempio che vadano usato dopo aver aperto il file come sopra...ma non l'ho ancora letto da nessuna parte. Questo è il modulo per il calcolo dell'md5sum usato nello script http://www.python.org/doc/current/lib/module-md5.html ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] aituo per programmino: creazione password ed md5sum
On Fri, Sep 19, 2008 at 02:39:54PM +0200, Valerio Pachera wrote: > Ciao a tutti, è un po' che non metto mano a python e sono comunque un > novellino. > Ho una necessità pratica da usare come esercizio per imparare qualcosa > di più di python: > > volgio fare un piccolo script per generare delle password ed il relativo md5. > Come input deve prendere i paramteri "numero di password da creare", > "il nome del file" dove salvarle ed il "separatore" usato per separare > le password e l'md5 nel file che verrà scritto. > > Ho creato lo script ma NON SO COME SCRIVERE SU UN FILE IL RISULTATO. > ecco lo script: > > -- > # coding=utf-8 > import md5 > import random > > def genpasswd (lenght=8): > passwd="" > for num in random.sample(range(0,10), lenght): > passwd += str(num) > return passwd > > def genlist (records, separator): > c = 0 > passwd = "" > md5sum = "" > record = [] > passwd_list = [] > while c < records: > new_passwd = genpasswd() > new_md5 = md5.new (new_passwd).hexdigest() + separator > new_passwd += separator > record = [new_passwd, new_md5] > passwd_list.append (record) > c += 1 > return passwd_list > > def genfile (filename, records=1, separator=';'): > passwd_list = genlist(records, separator) > print "devo scrivere i seguenti record sul file ", filename > for record in passwd_list: > #scrivi i record su un file di testo > print record una roba così? oltre ad 'open' che dovresti vedere documentata da tante parti, nota l'uso di join, operatore di una stringa def genlist (records, separator): c = 0 passwd = "" md5sum = "" record = [] passwd_list = [] while c < records: new_passwd = genpasswd() new_md5 = md5.new (new_passwd).hexdigest() passwd_list.append(separator.join([new_passwd, new_md5])) c += 1 return passwd_list def genfile (filename, records=10, separator=';'): passwd_list = genlist(records, separator) f = open(filename, 'w') #scrivi i record su un file di testo f.write("\n".join(passwd_list)) f.write('\n') f.close() ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] aituo per programmino: creazione password ed md5sum
Valerio Pachera ha scritto: > def genfile (filename, records=1, separator=';'): > passwd_list = genlist(records, separator) > print "devo scrivere i seguenti record sul file ", filename > for record in passwd_list: > #scrivi i record su un file di testo > print record E' sufficiente: file_da_scrivere = open(nome_del_file, 'w') file_da_scrivere.write(record) file_da_scrivere.close() -- Simone Chiacchiera con i tuoi amici in tempo reale! http://it.yahoo.com/mail_it/foot/*http://it.messenger.yahoo.com ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] pygoocanvas: riferimenti -create/resize/move- di rettangoli
Salve, mi sono da poco immerso nel geometrico mondo di pygoocanvas ponendomi, almeno per ora, l'ambizioso obiettivo di disegnare, ridimensionare e spostare rettangoli :-p Tentando di accumulare una base di conoscenze minime per partire ho cercato di recuperare quanta più documentazione possibile, fermandomi purtroppo alla "sola" guida di riferimento delle API locale(ubuntu#8.04: /usr/share/gtk-doc/html/pygoocanvas/index.html) che non mi è parsa particolarmente esemplificativa per un novellino... Rubando idee agli esempi trovati in rete, sono arrivato a disegnare, con qualche dubbio, il mio primo rettangolo. * Uno dei miei dubbi consultando la guida di riferimento delle API leggo: rect = goocanvas.Rect(x=100, y=100, width=200, height=100, stroke_color="red", fill_color="blue", line_width=5.0) Noto che manca ogni riferimento all'argomento "parent=". Argomento presente in ogni altro esempio da me trovato e che ho incluso nel codice di esempio che accodo a questa mail. Le prove/riprove fatte, mi hanno portato a pensare che "parent" sia un elemento *necessario* ma non ho trovato riferimenti che mi chiariscano cosa sia e come si debba correttamente usare. * Il secondo scoglio che vorrei superare è quello di capire come ridimensionare un rettangolo in fase di creazione. Il mio intento era in sintesi di: 1) Creare un piccolo(1x1 pixel) rettangolo collegato a un evento "on_mouse_press". 2) Modificare la dimensione del rettangolo creato sfruttando "on_motion_notify". 3) Terminare il disegno del rettangolo con "on_button_release". * L'ultimo scoglio resterà poi quello di spostare il rettangolo creato trascinandolo con il mouse. Qualcuno sarebbe così gentile da suggerirmi qualche riferimento utile o del codice? Grazie in anticipo :-), Simone ps. Accodo il codice a cui sto lavorando: ---python-code-begin--- #!/usr/bin/python import gtk import goocanvas def main_quit(*arg): gtk.main_quit() class ProvaCanvas(object): """ prova canvas """ def __init__(self): # Dimensioni canvas self.canvas_width=400 self.canvas_height=400 self.movement = False def on_button_press(self, widget, event): """ """ self.movement = True print ' x=%s, y=%s\n' % (event.x, event.y) self.button_press_x=event.x self.button_press_y=event.y def on_button_release(self, widget, event): """ """ self.movement = False print 'button released' width = event.x-self.button_press_x height = event.y-self.button_press_y self.draw_rect(event, width, height) self.draw_text(event, text='prova') def on_motion_notify(self, widget, event): if self.movement: print event.x, event.y def draw_rect(self, event, width=5, height=5, fill='blue'): """ Disegno rettangolo """ x1 = self.button_press_x y1 = self.button_press_y x2 = event.x y2 = event.y if x2 > x1: width = x2-x1 x=x1 else: width = x1-x2 x=x2 if y2 > y1: y=y1 height = y2-y1 else: y=y2 height = y1-y2 print 'rect (\n' print '\t x1: %s \n\t y1: %s \n' % (x1, y1) print '\t x2: %s \n\t y2: %s' % (x2, y2) print '\n\t width: %s \n\t height: %s\n\t)' % (width, height) if (width > 0) and (height > 0): self.rect = goocanvas.Rect(x=x, y=y, width=width, height=height, fill_color=fill, parent=self.root) else: print "Dimensioni nulle, non disegno" def draw_text(self, event, text="no text", font="Arial 10", width=100): """ add text """ x1 = self.button_press_x y1 = self.button_press_y x2 = event.x y2 = event.y if x2 > x1: width = x2-x1 x = x1 else: width = x1-x2 x = x2 if y2 > y1: y = y1 else: y = y2 msg = goocanvas.Text(text=text, font=font, x=x, y=y, width=width) self.root.add_child(msg) def main(self): win = gtk.Window() win.connect('destroy', main_quit) win.set_title('Prova Canvas') vbox = gtk.VBox() win.add(vbox) vbox.show() label = gtk.Label("Prova canvas. disegna rettangoli") vbox.pack_start(label, expand=False) label.show() # Creo canvas self.canvas = goocanvas.Canvas() self.canvas.set_size_request(self.canvas_width,self.canvas_height) self.canvas.set_bounds(0, 0, self.canvas_width,self.canvas_
Re: [Python] pygoocanvas: riferimenti -create/resize/move- di rettangoli
On Fri, Sep 19, 2008 at 5:55 PM, Simone <[EMAIL PROTECTED]> wrote: > Salve, ciao Simone, > Tentando di accumulare una base di conoscenze minime per partire ho > cercato di recuperare quanta più documentazione possibile, fermandomi > purtroppo alla "sola" guida di riferimento delle API > locale(ubuntu#8.04: /usr/share/gtk-doc/html/pygoocanvas/index.html) > che non mi è parsa particolarmente esemplificativa per un > novellino... Quello in effetti è un reference manual e quindi spiega solamente il funzionamento delle API, se mai avrò tempo lo implementerò con maggiori dettagli. > Rubando idee agli esempi trovati in rete, sono arrivato a disegnare, > con qualche dubbio, il mio primo rettangolo. Ho fatto una caterva di esempi e tu li cerchi in rete? :( http://svn.gnome.org/viewvc/pygoocanvas/trunk/demo/ oppure sulla tua macchina dovrebbero essere in: /usr/share/doc/python-pygoocanvas/examples/ > * Uno dei miei dubbi > > consultando la guida di riferimento delle API leggo: > > rect = goocanvas.Rect(x=100, y=100, width=200, height=100, >stroke_color="red", fill_color="blue", >line_width=5.0) > > Noto che manca ogni riferimento all'argomento "parent=". Argomento > presente in ogni altro esempio da me trovato e che ho incluso nel > codice di esempio che accodo a questa mail. Le prove/riprove fatte, mi > hanno portato a pensare che "parent" sia un elemento *necessario* ma > non ho trovato riferimenti che mi chiariscano cosa sia e come si debba > correttamente usare. L'argomento parent si aspetta un goocanvas.Group, di default viene creato un gruppo alla creazione del canvas canvas.get_root_item(), l'item ritornato dal metodo è appunto il gruppo da passare a parent, nulla ti vieta però di mettere un item all'interno di un altro gruppo successivamente all creazione con item.set_parent(group) o ancora group.add_child(item) > * Il secondo scoglio che vorrei superare è quello di capire come > ridimensionare un rettangolo in fase di creazione. Il mio intento era > in sintesi di: > > 1) Creare un piccolo(1x1 pixel) rettangolo collegato a un evento > "on_mouse_press". > 2) Modificare la dimensione del rettangolo creato sfruttando > "on_motion_notify". > 3) Terminare il disegno del rettangolo con "on_button_release". > > * L'ultimo scoglio resterà poi quello di spostare il rettangolo creato > trascinandolo con il mouse. > > Qualcuno sarebbe così gentile da suggerirmi qualche riferimento utile > o del codice? guarda l'esempio: /usr/share/doc/python-pygoocanvas/examples/simple_demo/demo.py e tutti gli altri import. ciao -- Gian Mario Tagliaretti GNOME Foundation member [EMAIL PROTECTED] ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python