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)