Avatar billede havmaage Juniormester
05. februar 2014 - 15:57 Der er 4 kommentarer og
1 løsning

append fra fil til dictionary

Hejsa

jeg forsøger at indlæse en alm. tekst fil ind i et dicitonary i python. Det virker fint nok, der er bare det problem at den gerne skulle appende key + item til mit dictionary men den overskriver blot

koden
conf = {}
def get_key_val(x):
            a,b = x.split('=')
            return a,b

file = open('newfile2.txt','r')
for line in file:
    line = line.replace(' ','')
    cond = dict(map(get_key_val,line.split()))
   

print conf

**************************************************
newfile2.txt

SERVER=blue
HOST=aarapp144

***************************************************
output
>>>
{'HOST': 'aarapp144'}
>>>

ønsket resultat
{'SERVER': 'blue','HOST': 'aarapp144'}


Det er det første spørgsmål. i python kategorien så spændende om der kommer tilbage meldinger på det.
Avatar billede erikjacobsen Ekspert
05. februar 2014 - 16:28 #1
Du overskriver dit dictionary hver gang, med et nyt dictionary med een nøgle/værdi. Du kan evt gøre det sådan her:

conf = {}
def get_key_val(x):
  a,b = x.split('=')
  return a,b

line = "SERVER=BLUE"
conf.update(dict(map(get_key_val,line.split())))
line = "HOST=aarapp144"
conf.update(dict(map(get_key_val,line.split())))

print conf


eller brug setdefault metoden. Se her: http://pguides.net/python-tutorial/python-dictionary-methods/
Avatar billede erikjacobsen Ekspert
05. februar 2014 - 16:28 #2
Nå ja, jeg lod lige være med at læse det ind fra en fil - det var nemmest...
Avatar billede havmaage Juniormester
05. februar 2014 - 16:42 #3
super det virkede med update, tak for det :-)

file = open('newfile2.txt','r')
for line in file:
    line = line.replace(' ','')
    conf.update(dict(map(get_key_val,line.split())))

læg gerne et svar
Avatar billede erikjacobsen Ekspert
05. februar 2014 - 16:45 #4
Nemlig. Jeg samler slet ikke på point, tak. Svar selv, og accepter dit eget svar.
Avatar billede havmaage Juniormester
05. februar 2014 - 17:05 #5
Ok. her er svaret Erik's kommentar indeholder det rigtige svar men jeg lukker selv spørgsmålet på foranledning.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester