Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Mi controllate dove sbaglio??RISP please!

    ho un file con dei dati scritti in questo modo:

    nome
    numero
    -
    nome1
    numero1
    -
    nome2
    numero2
    -

    e questo scriptino in Python che dovrebbe leggere i dati dal file, metterli in un dizionario, controlare se la chiave equivale al nome da cancellare ed in questo caso non copiarla sul file...il problema è che nn funziona...come posso fare??

    codice:
            print """
    **************************
    *    ELIMINA NUMERO      *
    **************************
            """            
            f = open("esempio.dat","r+")
            lista = f.readlines()
            searched = {'prova':'prova'}
    	for x in range(0,len(lista),3):
                chiave = lista[x][:-1]
                valore = lista[x+1]
                searched[chiave] = valore
            eliminare = raw_input("Inserisci il nome da cercare: ")
            chiavi = searched.keys()
            chiavi.sort()
            print chiavi
            for u in range(0,len(chiavi)):
                print chiavi[u]+"----\n"
                if chiavi[u] == eliminare:
                    print "------"+o+"----\n\n\n"
                else:
                    o = chiavi[u]
                    scrivi += "\n"+o+"\n"+searched[o]+"-"
            f.write(scrivi)
            print eliminare+" stato eliminato dal database"
            raw_input("Premi un tasto per continuare")
    eXtending-Php.net coming soon ...

  2. #2
    codice:
    searched = {'prova':'prova'}
    l'ho scritto perchè nn so come creare 1 dizionario vuoto...
    eXtending-Php.net coming soon ...

  3. #3
    Per salvare questi dati su disco devi usare un dizionario speciale:
    devi importare dbhash (per windows, per altri sistemi usa anydbm).
    Per aprire un file usa dbhash.open("nomefile","w")
    Prova=dbhash.open("prova.txt","w")
    poi utilizza l'oggetto Prova come se fosse un normale dizionario.
    Infine usa il metodo close per salvare e chiudere ex. Prova.close(mi swembra)
    Ricordo che puoi leggere con dbhash solo un file precedentememnte creato con lo stessp metodo

  4. #4
    Prova={} dizionario vuoto

  5. #5
    ok, provo con dbhash...
    eXtending-Php.net coming soon ...

  6. #6
    dimenticavo...il programmino che ho scritto è una cagatina x DOS...solo x provare Python...con dbhash, come vengono salvati i dati sul file??? cioè: in che ordine vengono letti per essere poi trasformati in dizionari??

    se dovreste fare un'agenda che salva nome,cognome,indirizzo,tel su un file e debba leggere il contenuto di questo file, cercare nel file x nome, cognome, numero o indirizzo, cancellare dal file un determinato utente...come fareste??

    Non potreste scrivermi un semplice listato per vedere come posso agire??
    eXtending-Php.net coming soon ...

  7. #7
    import dumbdbm,sys
    #importo dumbdbm al posto di dbhash perchè dumbdbm va bene
    # su ogni piattaforma mentre dbhash è specifico per windows

    def AddName(DB):
    print "Inserire un nome."
    Nome=sys.stdin.readline()[:-1]
    print "Inserire il valore corrispondente."
    Valore=sys.stdin.readline()[:-1]
    DB[Nome]=Valore

    def PrintList(DB):
    print ""
    for key in Database.keys():
    print key,Database[key]
    print ""

    if (__name__=="__main__"):
    Database=dumbdbm.open("Database","c")
    while (1):
    print "Inserisci un nome per cancellarlo\n+ per aggiungere un nuovo nome\nlist per la lista completa\nQ per uscire"
    Command=sys.stdin.readline()[:-1]
    if (Command==""):
    continue
    elif (Command=="+"):
    AddName(Database)
    elif (Command=="list"):
    PrintList(Database)
    elif (Command=="Q"):
    break
    else:
    try:
    print Database[Command], ":"
    print "valore eliminato"
    del Database[Command]
    except KeyError:
    print "Nome non trovato"
    print "Salvo e chiudo"
    Database.close()



    Dovrebbe essere qualcosa di molto simile a ciò che volevi fare all inizio

  8. #8
    ahh, ti consiglio di provarlo prima per vedere come funfa

  9. #9
    sembra funzionare...ci lavoro sopra e vedo come se ne tiro fuori qlcs...p.s: dove trovo qualche informazione tecnica su dumbdbm
    eXtending-Php.net coming soon ...

  10. #10
    oltertutto....perchè non usi raw_input() ma sys.stdin.readline()[:-1] ?? questione di estetica o c'è altro??
    eXtending-Php.net coming soon ...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.