[Python] aituo per programmino: creazione password ed md5sum

Valerio Pachera sirio81 a gmail.com
Ven 19 Set 2008 14:39:54 CEST


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


Maggiori informazioni sulla lista Python