На этом уроке мы закрепим знания о работе с файлами и обработке ошибок, выполнив практические задания, которые объединяют оба этих навыка. Реальные программы часто работают с файлами и должны корректно обрабатывать возможные ошибки.
try:
with open("data.txt", "r") as file:
content = file.read()
print(content)
except FileNotFoundError:
print("Файл не найден!")
except PermissionError:
print("Нет доступа к файлу!")try:
number = int(input("Введите число: "))
with open("number.txt", "w") as file:
file.write(str(number))
except ValueError:
print("Ошибка! Вы ввели не число.")with для автоматического закрытия# Правильно
with open("data.txt", "r") as file:
content = file.read()
# Неправильно (нужно закрывать вручную)
file = open("data.txt", "r")
content = file.read()
file.close() # Легко забыть!Напиши программу, которая пытается прочитать файл data.txt и вывести его содержимое. Если файл не найден, программа должна вывести "Файл не найден!" и создать новый файл с текстом "Новый файл".
try:
with open("data.txt", "r") as file:
content = file.read()
print(content)
except FileNotFoundError:
print("Файл не найден!")
with open("data.txt", "w") as file:
file.write("Новый файл")В файле numbers.txt записаны числа по одному на строке. Напиши программу, которая читает эти числа и выводит их сумму. Обработай возможные ошибки:
try:
with open("numbers.txt", "r") as file:
lines = file.readlines()
total = 0
for line in lines:
try:
number = int(line.strip())
total += number
except ValueError:
print(f"Пропущена строка:
Напиши программу, которая запрашивает у пользователя имя и возраст, затем записывает эту информацию в файл users.txt. Обработай ошибки при вводе возраста.
name = input("Введите имя: ")
try:
age = int(input("Введите возраст: "))
with open("users.txt", "a") as file:
file.write(f"{name}: {age} лет\n")
print("Данные сохранены!")
except
Напиши программу, которая копирует содержимое файла source.txt в файл destination.txt. Обработай возможные ошибки.
try:
with open("source.txt", "r") as source:
content = source.read()
with open("destination.txt", "w") as dest:
dest.write(content)
print("Файл успешно скопирован!")
except FileNotFoundError:
print("Исходный файл не найден!")
Напиши программу, которая читает файл text.txt и выводит количество строк в нём. Обработай ошибку, если файл не найден.
try:
with open("text.txt", "r") as file:
lines = file.readlines()
count = len(lines)
print(f"Количество строк: {count}")
except FileNotFoundError:
print("Файл не найден!")Напиши программу, которая ищет слово в файле text.txt и выводит количество его вхождений. Обработай ошибки.
try:
word = input("Введите слово для поиска: ")
with open("text.txt", "r") as file:
content = file.read()
count = content.count(word)
print(f"Слово '{word}' встречается {count} раз(а)")
except FileNotFoundError
Напиши программу, которая запрашивает у пользователя числа (по одному на строке, пустая строка для завершения) и записывает их в файл numbers.txt. Обработай ошибки при вводе.
numbers = []
while True:
try:
line = input("Введите число (пустая строка для завершения): ")
if line == "":
break
number = int(line)
numbers.append(number)
except ValueError:
print("Ошибка! Вы ввели не число. Попробуйте снова.")
try:
with open
FileNotFoundError, PermissionError).ValueError).with для автоматического закрытия файлов.FileNotFoundError при чтении файлов — программа завершится ошибкой или даст неверный результат.ValueError при преобразовании данных из файла — результат станет непредсказуемым.open() без with и забывать закрыть его — ресурс останется занятым и запись может завершиться некорректно.Напиши программу, которая пытается прочитать файл data.txt и вывести количество символов в нём. Если файл не найден, программа должна вывести "Файл не найден!".
В файле grades.txt записаны оценки учеников по одному числу на строке. Напиши программу, которая читает эти оценки и выводит среднюю оценку. Обработай возможные ошибки:
Напиши программу, которая запрашивает у пользователя имя файла и пытается прочитать его содержимое. Если файл не найден, программа должна вывести "Файл '<имя>' не найден!" и предложить создать новый файл с этим именем.
Напиши программу, которая читает файл words.txt (в нём записаны слова по одному на строке) и создаёт новый файл long_words.txt, в который записывает только слова длиннее 5 символов. Обработай ошибку, если исходный файл не найден.
Напиши программу-дневник, которая:
diary.txt в формате: "Дата: <дата> | Запись: <запись>".Напиши программу, которая читает файл numbers.txt (числа по одному на строке) и выводит:
Обработай ошибки: файл не найден, не числовые данные в файле.
Напиши программу, которая:
contacts.txt в формате: "Имя: <имя> Фамилия: <фамилия> Возраст: <возраст>".Напиши программу-шифровальщик, которая:
message.txt.encrypted.txt.Подсказка: используй ord() и chr() для работы с символами.
Напиши программу, которая читает файл data.csv (формат: строки вида имя;возраст;город) и выводит список словарей. Каждая строка — словарь с ключами "name", "age", "city". Обработай ошибки парсинга.
Напиши программу, которая получает слово и путь к папке, затем выводит имена всех .txt файлов в этой папке, содержащих данное слово. Используй os.listdir() для получения списка файлов.