NorskFirefox Skrevet 3. april 2006 Del Skrevet 3. april 2006 Hei, Prøver meg litt fram i python, kommet fram til denne lille koden: #!/usr/bin/python # Filename: test.py start = True while start == True: ab = {'thomas' : '[email protected]'} print '\nDet er %d kontakter i adresseboka\n' % len(ab) navn = raw_input('Navn: ') if navn == 'epost': for name, address in ab.items(): print '%s - %s' % (name, address) elif navn == 'exit': start = False else: epost = raw_input('Epost: ') ab[navn] = epost Her vil jeg at det skal lagres variabler med navnet man skriver inn og så legge til epost. Noen som kan hjelpe meg å det kan bli lagra til en fil? Takker for svar som leder til løsning(er) Lenke til kommentar
zeitgeist Skrevet 3. april 2006 Del Skrevet 3. april 2006 Hei,Prøver meg litt fram i python, kommet fram til denne lille koden: #!/usr/bin/python # Filename: test.py start = True while start == True: ab = {'thomas' : '[email protected]'} print '\nDet er %d kontakter i adresseboka\n' % len(ab) navn = raw_input('Navn: ') if navn == 'epost': for name, address in ab.items(): # print '%s - %s' % (name, address) elif navn == 'exit': start = False else: epost = raw_input('Epost: ') ab[navn] = epost Her vil jeg at det skal lagres variabler med navnet man skriver inn og så legge til epost. Noen som kan hjelpe meg å det kan bli lagra til en fil? Takker for svar som leder til løsning(er) 5860118[/snapback] Før du kan lagre til fil, må du gjøre dataene skrivbare. F.eks slik ab_lines = [] for name, adress in ab.items(): ab_lines.append("%s:%s" % (name, adress)) adressedata = "\n".join(ab_lines) # For å lagre til fil, skriv f.eks file('adressbook.txt', 'w').write(adressedata) da kan du senere lese dem igjen med noe slikt: def read_ab(filename = 'adressbook.txt'): # Bygg dict av "navn:epost"-linjer ab = {} try: ab_lines = file(filename, 'r').readlines() for line in ab_lines: ab[name] = line.split(':').strip() except IOError: pass # Fil ikke opprettet. return ab ab = read_ab() Lenke til kommentar
NorskFirefox Skrevet 3. april 2006 Forfatter Del Skrevet 3. april 2006 Takk, men forstod det ikke helt.. Kunne du satt det inn i koden min? Lenke til kommentar
zeitgeist Skrevet 3. april 2006 Del Skrevet 3. april 2006 Takk, men forstod det ikke helt..Kunne du satt det inn i koden min? 5860510[/snapback] Jeg ville ha gjort det litt annerledes. Du kan kikke på dette, det ser ut til å funke. Bare spør hvis det er noe som er uklart osv. import sys def read_ab(filename = 'ab.txt'): # Leser inn navn:email linjer fra fil (hvis den finnes) #og bygger dictionary ab = {} try: ab_lines = file(filename, 'r').readlines() for line in ab_lines: name, address = line.split(':') ab[name.strip()] = address.strip() except IOError: # Fil finnes ikke. return {'thomas' : '[email protected]'} return ab def write_ab(ab, filename = 'ab.txt'): # lager streng av dictinary og skriver til fil ab_lines = [] for name, adress in ab.items(): ab_lines.append("%s:%s" % (name, adress)) file(filename, 'w').write("\n".join(ab_lines)) def add_ab(): # henter adresser fra fil, leser inn nye og lagrer fil. ab = read_ab() print "Tomt Navn- og/eller Epost-felt avslutter.\n\n" try: while True: print "Det er", len(ab), "navn i adresseboken\n" name = raw_input('Navn: ').lower().strip() email = raw_input('Epost: ').lower().strip() if not name or not email: # Lagre og avslutte write_ab(ab) print "Avslutter. Lagret", len(ab), "adresser i fil." break else: ab[name] = email except KeyboardInterrupt: # Ctrl-C sys.exit("\nBruker avsluttet") add_ab() Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå