Ahogyan korábban utaltunk már rá, állományok írása esetén a megnyitáson túl gondoskodnunk kell az állomány megfelelő pillanatban való lezárásáról is. Az esetleg elmaradó .close() metódus helyett ezért (is) érdemes a már bemutott with-szerkezetet használni.
Jeleznünk kell, hogy az állományt írásra nyitjuk meg, a .write() metódus használata során pedig gondoskodnunk kell a sorvégjelek írásáról is:
_(6) print('Kiírjuk a kodok.txt állományt...') with open('inf_e_20070516_m_04_kodok.txt', 'w') as file: for word in l_wds: file.write(f_wc(word) + '\n')
A következő lépésben meg kellett adnunk, hogy mely szavak tartoznak egy adott kódhoz. A beolvasás során felépítettük az ehhez szükséges adatszerkezetet (adott kódhoz mint kulcshoz tartozik a megfelelő szavak listája): most csak ki kell íratnunk a megfelelő értékeket. A .join() metódus használata azért is praktikus, mert így nem kell külön kezelnünk az utolsó szó esetét (amely után már nem áll vessző):
_(7) code= input('Kérem, adjon meg egy számsort: ') if code in dl_cw: print('Az ehhez tartozó szó (illetve szavak):', ', '.join(dl_cw[code])) else: print('Nincs ehhez tartozó szó.')
Ezt követően a több szónak megfeleltethető kódokat kellett a hozzájuk tartozó szavakkal együtt kiíratnunk. A feladat megadta minta most bonyolultabb, mint a hetedik lépésben: a kód : szó párokat pontosvessző választja el egymástól, ennek megfelelően nincs olyan lista, amelyet kézenfekvő módon használhatnánk a .join() metódus argumentumaként. Az utolsó párt a többivel együtt kezeljük, az utána kerülő pontosvesszőt a kiírás során vágjuk le:
_(8) str= '' for code in dl_cw: if len(dl_cw[code])>1: for word in dl_cw[code]: str+= word + ' : ' + code + '; ' print(str[:-2])