Файлы — это способ хранить данные на диске компьютера. Программы часто читают данные из файлов (например, списки пользователей, настройки) и записывают результаты работы в файлы (например, отчёты, логи).
В этом уроке мы научимся открывать файлы, читать из них данные, записывать информацию и правильно закрывать файлы.
open().'r'), запись ('w'), добавление ('a').read(), readline(), readlines().write(), writelines().with.open()Для работы с файлом его нужно сначала открыть с помощью функции open():
file = open("data.txt", "r")Функция open() принимает два аргумента:
'r' — чтение (read)Открывает файл только для чтения. Если файл не существует, возникнет ошибка.
file = open("data.txt", "r")
content = file.read()
file.close()'w' — запись (write)Открывает файл для записи. Если файл существует, его содержимое будет удалено. Если файла нет, он будет создан.
file = open("output.txt", "w")
file.write("Привет, мир!")
file.close()'a' — добавление (append)Открывает файл для добавления данных в конец. Если файла нет, он будет создан.
file = open("log.txt", "a")
file.write("Новая запись\n")
file.close()read() — прочитать весь файлЧитает всё содержимое файла как одну строку.
file = open("data.txt", "r")
content = file.read()
print(content)
file.close()readline() — прочитать одну строкуЧитает одну строку из файла. При каждом вызове читает следующую строку.
file = open("data.txt", "r")
line1 = file.readline() # первая строка
line2 = file.readline() # вторая строка
file.close()readlines() — прочитать все строкиЧитает все строки файла и возвращает список строк.
file = open("data.txt", "r")
lines = file.readlines()
file.close()
# lines — это список строк
for line in lines:
print(line.strip()) # strip() убирает символ перевода строкиwrite() — записать строкуЗаписывает строку в файл. Не добавляет символ перевода строки автоматически.
file = open("output.txt", "w")
file.write("Первая строка\n")
file.write("Вторая строка\n")
file.close()writelines() — записать список строкЗаписывает список строк в файл. Также не добавляет \n автоматически.
lines = ["Строка 1\n", "Строка 2\n", "Строка 3\n"]
file = open("output.txt", "w")
file.writelines(lines)
file.close()with — автоматическое закрытиеКонструкция with автоматически закрывает файл после завершения работы, даже если произошла ошибка.
with open("data.txt", "r") as file:
content = file.read()
print(content)
# Файл автоматически закрыт здесьwith# Чтение
with open("data.txt", "r") as file:
content = file.read()
print(content)
# Запись
with open("output.txt", "w") as file:
file.write("Привет, мир!\n")
file.write("Это вторая строка\n"
Если файл находится в той же папке, что и программа, можно указать только имя файла:
with open("data.txt", "r") as file:
content = file.read()Можно указать полный путь к файлу:
with open("C:/Users/Student/data.txt", "r") as file:
content = file.read()Что делает функция open()?
Какой режим нужно использовать, чтобы прочитать данные из файла?
'r''w''a'Что произойдёт, если открыть существующий файл в режиме 'w'?
Что выведет этот код, если в файле data.txt содержится:
Привет
Мир
Python
with open("data.txt", "r") as file:
content = file.read()
print(content)Что выведет этот код, если в файле data.txt содержится:
Строка 1
Строка 2
Строка 3
with open("data.txt", "r") as file:
line1 = file.readline()
line2 = file.readline()
print(line1.strip())
print(line2.strip())Напиши программу, которая создаёт файл greeting.txt и записывает в него строку "Привет, мир!".
with open("greeting.txt", "w") as file:
file.write("Привет, мир!")Напиши программу, которая читает файл numbers.txt, в котором записаны числа по одному на строке, и выводит их сумму.
with open("numbers.txt", "r") as file:
lines = file.readlines()
total = 0
for line in lines:
number = int(line.strip())
total += number
print(total)open() открывает файл для работы.'r' — чтение, 'w' — запись (перезапись), 'a' — добавление.read() — весь файл, readline() — одна строка, readlines() — список строк.write() — одна строка, writelines() — список строк.with для автоматического закрытия файлов.\n при записи, если нужен перевод строки.with) — программа завершится ошибкой или даст неверный результат.'w' и 'a' — данные в файле перезапишутся вместо добавления.\n при записи — весь текст сольется в одну строку.'r') — результат станет непредсказуемым.Создай файл greeting.txt и запиши в него строку "Привет, мир!".
Напиши программу, которая читает файл data.txt и выводит его содержимое на экран.
В файле numbers.txt записаны числа по одному на строке. Напиши программу, которая читает эти числа и выводит их сумму.
Напиши программу, которая:
names.txt.В файле words.txt записаны слова по одному на строке. Напиши программу, которая читает все слова и выводит самое длинное слово.
Напиши программу, которая:
input.txt.output.txt.В файле log.txt уже есть некоторые записи. Напиши программу, которая добавляет в конец файла новую строку с текущей датой и временем (можно использовать просто строку "2024-01-15 12:30:00" для примера).
Напиши программу, которая:
students.txt, в котором записаны имена студентов по одному на строке.count.txt в формате: "Количество студентов: <число>".Напиши программу, которая читает два текстовых файла a.txt и b.txt и записывает их содержимое в третий файл merged.txt: сначала содержимое a.txt, затем пустая строка, затем содержимое b.txt.
Напиши программу, которая читает файл lines.txt (каждая строка — отдельная запись), сортирует строки по алфавиту и записывает результат обратно в тот же файл.
"C:\\Users\\Student\\data.txt" ✅"C:\Users\Student\data.txt" ❌ (может вызвать ошибку)