Python · Синтаксис · Начальный уровень
Работа с файлами: чтение и запись
Практические упражнения по работе с файлами в Python: чтение текста, запись строк, добавление данных, подсчёт строк и слов, обработка содержимого файла и создание простых отчётов.
Краткое введение в тему и пояснения перед упражнениями (упражнения ниже):
Запись и дозапись
#Паттерны обработки файлов
#Быстрый справочник: операции с файлами
#Упражнения:
Прочитать весь файл.
#Создайте файл note.txt с текстом "Python files". Затем откройте этот файл на чтение, прочитайте всё содержимое и выведите его в терминал.
file_name = "note.txt"
Решение
file_name = "note.txt"
with open(file_name, "w", encoding="utf-8") as file:
file.write("Python files")
with open(file_name, "r", encoding="utf-8") as file:
text = file.read()
print(text)
Записать строку в файл.
#Пользователь вводит одну строку. Запишите эту строку в файл message.txt, затем прочитайте файл и выведите его содержимое.
text = input("Введите сообщение: ")
file_name = "message.txt"
Решение
text = input("Введите сообщение: ")
file_name = "message.txt"
with open(file_name, "w", encoding="utf-8") as file:
file.write(text)
with open(file_name, "r", encoding="utf-8") as file:
result = file.read()
print(result)
Добавить строку в конец файла.
#В файле log.txt уже есть строка "Start". Пользователь вводит новую строку. Добавьте её в конец файла с новой строки и выведите итоговое содержимое файла.
file_name = "log.txt"
with open(file_name, "w", encoding="utf-8") as file:
file.write("Start")
new_line = input("Новая строка: ")
Решение
file_name = "log.txt"
with open(file_name, "w", encoding="utf-8") as file:
file.write("Start")
new_line = input("Новая строка: ")
with open(file_name, "a", encoding="utf-8") as file:
file.write("\n" + new_line)
with open(file_name, "r", encoding="utf-8") as file:
text = file.read()
print(text)
Подсчитать строки в файле.
#Создайте файл tasks.txt с тремя строками: "Learn", "Practice", "Repeat". Прочитайте файл и выведите количество строк.
file_name = "tasks.txt"
Решение
file_name = "tasks.txt"
with open(file_name, "w", encoding="utf-8") as file:
file.write("Learn\nPractice\nRepeat")
with open(file_name, "r", encoding="utf-8") as file:
lines = file.readlines()
print("Количество строк:", len(lines))
# или так можно: считать строки в цикле
file_name = "note.txt"
count = 0
with open(file_name, "r", encoding="utf-8") as file:
for line in file:
count += 1
print(count)
Найти самое длинное слово.
#Создайте файл words.txt со словами через пробел: "code python file student". Прочитайте файл и выведите самое длинное слово.
file_name = "words.txt"
Решение
file_name = "words.txt"
with open(file_name, "w", encoding="utf-8") as file:
file.write("code python file student")
with open(file_name, "r", encoding="utf-8") as file:
text = file.read()
words = text.split()
longest = words[0]
for word in words:
if len(word) > len(longest):
longest = word
print(longest)
Записать список покупок.
#Есть список покупок: ["хлеб", "молоко", "сыр"]. Запишите каждый элемент списка в файл shopping.txt с новой строки. Затем прочитайте файл и выведите содержимое.
products = ["хлеб", "молоко", "сыр"] file_name = "shopping.txt"
Решение
products = ["хлеб", "молоко", "сыр"]
file_name = "shopping.txt"
with open(file_name, "w", encoding="utf-8") as file:
for product in products:
file.write(product + "\n")
with open(file_name, "r", encoding="utf-8") as file:
text = file.read()
print(text)
Сумма чисел из файла.
#Создайте файл numbers.txt, где числа записаны через пробел: 5 10 15 20. Прочитайте файл, посчитайте сумму чисел и выведите результат.
file_name = "numbers.txt"
Решение
file_name = "numbers.txt"
with open(file_name, "w", encoding="utf-8") as file:
file.write("5 10 15 20")
with open(file_name, "r", encoding="utf-8") as file:
text = file.read()
numbers = text.split()
total = 0
for number in numbers:
total += int(number)
print("Сумма:", total)
Фильтр строк по символу.
#Создайте файл emails.txt с несколькими строками, часть из которых содержит символ @. Прочитайте файл и запишите только строки с @ в новый файл valid_emails.txt. Затем выведите содержимое нового файла.
file_name = "emails.txt" result_file = "valid_emails.txt"
Решение
file_name = "emails.txt"
result_file = "valid_emails.txt"
with open(file_name, "w", encoding="utf-8") as file:
file.write("[email protected]\nhello\[email protected]\ntest")
with open(file_name, "r", encoding="utf-8") as file:
lines = file.readlines()
with open(result_file, "w", encoding="utf-8") as file:
for line in lines:
if "@" in line:
file.write(line)
with open(result_file, "r", encoding="utf-8") as file:
text = file.read()
print(text)
Перезаписать файл в верхнем регистре.
#Создайте файл text.txt со строкой "hello file". Прочитайте содержимое, переведите его в верхний регистр и перезапишите этот же файл новым текстом. Затем выведите итоговое содержимое.
file_name = "text.txt"
Решение
file_name = "text.txt"
with open(file_name, "w", encoding="utf-8") as file:
file.write("hello file")
with open(file_name, "r", encoding="utf-8") as file:
text = file.read()
text = text.upper()
with open(file_name, "w", encoding="utf-8") as file:
file.write(text)
with open(file_name, "r", encoding="utf-8") as file:
result = file.read()
print(result)
Отчёт с количеством слов.
#Создайте файл article.txt с несколькими словами. Прочитайте файл, посчитайте количество слов и запишите в файл report.txt строку вида "Количество слов: N". Затем выведите содержимое report.txt.
article_file = "article.txt" report_file = "report.txt"
Решение
article_file = "article.txt"
report_file = "report.txt"
with open(article_file, "w", encoding="utf-8") as file:
file.write("Python helps practice file reading and writing")
with open(article_file, "r", encoding="utf-8") as file:
text = file.read()
words = text.split()
count = len(words)
with open(report_file, "w", encoding="utf-8") as file:
file.write(f"Количество слов: {count}")
with open(report_file, "r", encoding="utf-8") as file:
result = file.read()
print(result)