Állományok írása

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')

Kiválogatás

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])