Hei. Minun olisi tarkoitus tallettaa samaan kansioon.txt useampia listoja. Kuinka saisin sen toteutettua, jotta saisin tiedot helposti myös haettua. Esim nimi, syntymäaika, yms. Kiitos.
PS. Täytyykö lista aina purkaa tiedostoon, eikö se voisi pysyä siellä muuttujana nimilista, ikälista, tms.
nimilista = ["Aaro", "Bertta"] ikälista = ["22", "24"] osoitelista = ["kuja", "katu"] tiedosto = open('tallennus.txt', 'w') tiedosto.writelines(nimilista) tiedosto.writelines(ikälista) tiedosto.writelines(osoitelista) tiedosto.close() tiedosto = open("tallennus.txt", "r") arkisto=tiedosto.readlines() tiedosto.close() print(arkisto)
Mod. lisäsi kooditagit!
JSON on kätevä tallennusmuoto.
import json def tallenna(nimet, iat, osoitteet): with open('tiedosto.txt', 'w') as tiedosto: tiedosto.write(json.dumps({ 'nimet': nimet, 'iat': iat, 'osoitteet': osoitteet, })) def lue(): with open('tiedosto.txt', 'r') as tiedosto: data = json.load(tiedosto) nimet = data['nimet'] iat = data['iat'] osoitteet = data['osoitteet'] return nimet, iat, osoitteet nimet = ["Aaro", "Bertta"] iat = [22, 24] osoitteet = ["kuja", "katu"] tallenna(nimet, iat, osoitteet) nimet2, iat2, osoitteet2 = lue() print(nimet2) print(iat2) print(osoitteet2)
Tiedosto näyttää tältä:
{"iat": [22, 24], "nimet": ["Aaro", "Bertta"], "osoitteet": ["kuja", "katu"]}
Monesti on muuten kätevämpää käsitellä yhtä listaa usean sijaan, tähän tyyliin:
henkilot = [ {'nimi': 'Aaro', 'ika': 22, 'osoite': 'kuja'}, {'nimi': 'Bertta', 'ika': 24, 'osoite': 'katu'}, ]
Kiitos sinulle oikein paljon.
Lisäys:
Kerrotko vielä miten teet tuon yhden listan, kiitos
import json def tallenna(henkilot): with open('tiedosto.txt', 'w') as tiedosto: tiedosto.write(json.dumps(henkilot)) def lue(): with open('tiedosto.txt', 'r') as tiedosto: return json.load(tiedosto) henkilot = [ {'nimi': 'Aaro', 'ika': 22, 'osoite': 'kuja'}, {'nimi': 'Bertta', 'ika': 24, 'osoite': 'katu'}, ] tallenna(henkilot) henkilot2 = lue() for henkilo in henkilot2: print(henkilo)
Tiedoston sisältö:
[{"nimi": "Aaro", "ika": 22, "osoite": "kuja"}, {"nimi": "Bertta", "ika": 24, "osoite": "katu"}]
Koodin tulostus:
{u'nimi': u'Aaro', u'ika': 22, u'osoite': u'kuja'} {u'nimi': u'Bertta', u'ika': 24, u'osoite': u'katu'}
Muutos Pythonin listojen ja dictionaryjen ja JSON:n vastaavien rakenteiden välillä on näin helppoa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.