Teema “Failidega töö”

Eesti keel:

Töö failidega

Faili avamine: f = open(‘file.txt’, mode) (režiimid: r — lugemine, w — kirjutamine, a — lisamine).
Lugemine:
  • f.read(n): Loeb n sümbolit või kogu faili.
  • f.readline(n): Loeb rea (kuni n sümbolit).
  • f.readlines(n): Loeb n rida.
Näide loendisse lugemiseks:
def Loe_failist(fail):
    with open(fail, 'r', encoding="utf-8-sig") as f:
        return [rida.strip() for rida in f]
Kirjutamine:
Näide loendi salvestamiseks:
def Kirjuta_failisse(fail, jarjend):
    with open(fail, 'w', encoding="utf-8-sig") as f:
        for line in jarjend:
            f.write(line + '\n')
Sulgemine: f.close() või with automaatseks sulgemiseks.
Faili kustutamine: os.remove(‘fail.txt’) (kui fail olemas).
Failide otsing:
from os import listdir
for failinimi in listdir("tee"):
    if failinimi.endswith(".mp3"):
        print("MP3 leitud!")

E-kirja saatmine

Moodulid: smtplib, email.message.
Sammud:
  • Sõnumi loomine: message = EmailMessage().
  • Päise seadistamine: message[‘Subject’], message[‘From’], message[‘To’].
  • Sõnumi sisu: message.set_content(“Tekst”).
  • SMTP ühendus: server = smtplib.SMTP(‘smtp.gmail.com’, 587), server.starttls(), server.login(email, password).
  • Saatmine: server.send_message(message), server.quit().
HTML-sisu:
with open('message.html', 'r') as file:
    message.set_content(file.read(), subtype='html')
Pildi manustamine:
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: Andmevorming salvestamiseks ja vahetamiseks (objektid, massiivid, numbrid, stringid, true/false, null).
Moodul: import json.
Tehted:
  • Python → JSON: json.dumps(data) (string), json.dump(data, file) (faili).
  • JSON → Python: json.loads(string), json.load(file).
Vormindamine: 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 API (ilm):
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")

Vene keel:

Работа с файлами

Открытие файла: f = open(‘file.txt’, mode) (режимы: r — чтение, w — запись, a — добавление).
Чтение:
  • f.read(n): Читает n символов или весь файл.
  • f.readline(n): Читает строку (до n символов).
  • f.readlines(n): Читает n строк.
Пример чтения в список:
def Loe_failist(fail):
    with open(fail, 'r', encoding="utf-8-sig") as f:
        return [rida.strip() for rida in f]
Запись:
Пример записи списка в файл:
def Kirjuta_failisse(fail, jarjend):
    with open(fail, 'w', encoding="utf-8-sig") as f:
        for line in jarjend:
            f.write(line + '\n')
Закрытие: f.close() или использование with для автозакрытия.
Удаление файла: os.remove(‘fail.txt’) (если файл существует).
Поиск файлов:
from os import listdir
for failinimi in listdir("path"):
    if failinimi.endswith(".mp3"):
        print("MP3 leitud!")

Отправка email

Модули: smtplib, email.message.
Шаги:
  • Создание сообщения: message = EmailMessage().
  • Настройка заголовков: message[‘Subject’], message[‘From’], message[‘To’].
  • Тело письма: message.set_content(“Текст”).
  • Подключение к SMTP: server = smtplib.SMTP(‘smtp.gmail.com’, 587), server.starttls(), server.login(email, password).
  • Отправка: server.send_message(message), server.quit().
HTML-контент:
with open('message.html', 'r') as file:
    message.set_content(file.read(), subtype='html')
Прикрепление изображения:
import imghdr
with open('image.jpg', 'rb') as file:
    message.add_attachment(file.read(), maintype='image', subtype=imghdr.what(None, file.read()))

JSON

Определение: Формат для хранения и обмена данными (объекты, массивы, числа, строки, true/false, null).
Модуль: import json.
Операции:
  • Python → JSON: json.dumps(data) (строка), json.dump(data, file) (в файл).
  • JSON → Python: json.loads(string), json.load(file).
Форматирование: json.dumps(data, indent=2, sort_keys=True).
Пример:
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))
Пример API (погода):
import requests
linn = input("Город: ")
url = f"http://api.openweathermap.org/data/2.5/weather?q={linn}&appid={api_key}&units=metric&lang=ru"
andmed = requests.get(url).json()
if andmed["cod"] != "404":
    print(f"Температура: {andmed['main']['temp']} °C")