Failidega töö

Töö failidega

Faili avamine
Faili saab avada käsuga:

f = open('file.txt', režiim)
  • 'r' – lugemiseks
  • 'w' – kirjutamiseks (faili sisu kirjutatakse üle)
  • 'a' – lisamiseks faili lõppu

Faili lugemine

  • f.read(n) – loeb kuni n sümbolit või kogu faili, kui n puudub
  • f.readline(n) – loeb ühe rea, maksimaalselt n sümbolit
  • f.readlines(n) – loeb kuni n rida ja tagastab loendina

Näide – sisu lugemine loendisse:

def Loe_failist(fail):
    with open(fail, 'r', encoding="utf-8-sig") as f:
        return [rida.strip() for rida in f]

Faili kirjutamine

Näide – loendi salvestamine faili:

def Kirjuta_failisse(fail, jarjend):
    with open(fail, 'w', encoding="utf-8-sig") as f:
        for line in jarjend:
            f.write(line + '\n')

Faili sulgemine

  • f.close() – sulgeb faili käsitsi
  • with konstruktsioon – sulgeb automaatselt faili lõpus

Faili kustutamine:

import os
os.remove('fail.txt')  # Kui fail eksisteerib

Failide nimekiri ja otsing:

from os import listdir
for failinimi in listdir("tee"):
    if failinimi.endswith(".mp3"):
        print("MP3 leitud!")

E-kirja saatmine

Vajalikud moodulid: smtplib, email.message

Sammud:

  1. Sõnumi koostamine:
from email.message import EmailMessage message = EmailMessage() message['Subject'] = 'Teema' message['From'] = 'saatja@email.com' message['To'] = 'saaja@email.com' message.set_content("Kirja sisu")
  1. SMTP-ühenduse loomine ja saatmine:
import smtplib server = smtplib.SMTP('smtp.gmail.com', 587) server.starttls() server.login(email, password) server.send_message(message) server.quit()

HTML-sisu lisamine:

with open('message.html', 'r') as file:
    message.set_content(file.read(), subtype='html')

Pildi manustamine kirjale:

import imghdr
with open('image.jpg', 'rb') as file:
    message.add_attachment(file.read(),
                           maintype='image',
                           subtype=imghdr.what(None, file.read()))

JSON

Mõiste: JSON on andmevorming, mida kasutatakse info salvestamiseks ja edastamiseks (nt sõnastikud, loendid, arvud, stringid, tõeväärtused, null).

Moodul:

import json

Tegevused:

  • Python → JSON:
    • json.dumps(data) – teisendab andmed stringiks
    • json.dump(data, file) – kirjutab andmed otse faili
  • JSON → Python:
    • json.loads(string) – teisendab JSON-stringi Python objektiks
    • json.load(file) – loeb ja teisendab faili sisu Python objektiks

Ilus vormindus:

json.dumps(data, indent=2, sort_keys=True)

Näide:

andmed = {"nimi": "Anna", "vanus": 25}
with open("andmed.json", "w") as f:
    json.dump(andmed, f, indent=2)

with open("andmed.json", "r") as f:
    print(json.load(f))

Näide – ilmateabe küsimine API abil:

import requests

linn = input("Linn: ")
url = f"http://api.openweathermap.org/data/2.5/weather?q={linn}&appid={api_key}&units=metric&lang=et"
andmed = requests.get(url).json()

if andmed["cod"] != "404":
    print(f"Temperatuur: {andmed['main']['temp']} °C")