Darbas su failais Spausdinti
( 6 Votes )
Parašė Vidmantas Šarkys   

Failo atidarymas

Prieš pradedant darbą su bet kuriuo failu būtina nurodyti failo pavadinimą bei darbo su juo rėžimą. Python programavimo kalboje atidarymas bendruoju atveju atrodo šitaip:

failo_kintamasis = open("failo pavadinimas", "rėžimas)

Kintamojo vardas, nurodomas atidarymo metu, vėliau bus naudojamas vykdant veiksmus su failu. Pirmose kabutėse nurodome failo vardą operacinėje sistemoje prirašydami failo vardo plėtinį (dirbdami su tekstiniais failais naudosime plėtinį .txt). Svarbui - jeigu atidaromas failas nėra Python direktorijoje, būtina nurodyti pilną failo adresą. Antrose kabutėse nurodomas darbo su failu rėžimas:

r - jeigu norime failą tik skaityti;

w - jeigu norime atidaryti failą rašymui;

r+ - norėdami atlikti abu šiuos veiksmus.

Python turi implementuotas funkcijas ir darbui su dvejetainiais (binary) failais. Konvertavimas į dvejetainį kodą ir iš jo vykdomas automatiškai, tačiau failo atidarymo metu būtina nurodyti atitinkamą rėžimą: rb, wb arba rb+ .

Atidarius failą sukuriamas kintamasis mode, kuriame išsaugomas darbo su failu rėžimas. Tai gali būti pravartu, kuomet duomenys apie jau sukurtą failą persiunčiami iš kitos funkcijos, ir duomenų apie darbo su failu galimybes neturima. Tam pačiam tikslui gali pasitarnauti ir boolean reikšmę gražinančios funkcijos readable() ir writable() (naudojimas pavyzdyje žemiau).


Kodo pavyzdys:

f = open("C:/Users/www.coderland.lt/Desktop/failas.txt", "r+")
print(f.mode)
print(f.writable())
print(f.readable())

Išvestis:


Failo duomenų skaitymas

Visas failo turinys gali būti perskaitytas naudojantis funkcija read() . Norėdami perskaityti tam tikrą baitų kiekį, nurodome jį kaip funkcijos argumentą sveikuoju skaičiumi:

failo_pavadinimas.read(x)

Skaitant bei rašant faile pravartu žinoti žymeklio poziciją - kurioje vietoje tuo metu vyksta nuskaitymas arba rašymas. Žymeklio poziciją galima sužinoti pasinaudojus funkcija tell(), kuri grąžina sveikąjį skaičių - failo baitą, po kurio tuo metu yra žymeklis. Pereiti už tam tikro (nurodomo) baito faile galima naudojantis funkcija seek(x), kur x - norimas baitas.

Kodo pavyzdys:

f = open("C:/Users/Vidmantas/Desktop/coderland.txt", "r+")
print(f.read())
print(f.tell())
print(f.seek(4))
print(f.read(9))

Išvestis:


Duomenų rašymas į failą

Rašymas į failą vykdomas naudojantis funkcija write(), kurios argumentas - duomenys, kuriuos norima įrašyti. Būtina paminėti, kad įrašyti į failą galime tik string tipo duomenis. Norėdami greitai turimus duomenus konvertuoti į string, galime pasinaudoti standartinės Python bibliotekos funkcija str(x), kur x - kintamasis arba duomenų struktūra.

Kodo pavyzdys:

f = open("C:/Users/Vidmantas/Desktop/coderland.txt", "r+")
print(f.read())
f.write(" - programuokime kartu.")
print(f.read())

Išvestis: