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