Пример 1. Чтение всего файла методом read()
# example_01_read.py
with open("example.txt", "r", encoding="utf-8") as file:
content = file.read()
print(type(content))
print(content)
read() возвращает строку со всем содержимым файла. Переносы строк сохраняются как \n.
Пример 2. Чтение первых n символов
# example_02_read_n.py
with open("example.txt", "r", encoding="utf-8") as file:
chunk = file.read(10)
print(f"Первые 10 символов: {chunk!r}")
Указатель файла смещается на 10 символов вперёд. Повторный вызов read(10) прочитает следующие 10 символов.
Пример 3. Чтение построчно методом readline()
# example_03_readline.py
with open("example.txt", "r", encoding="utf-8") as file:
first = file.readline()
second = file.readline()
print(f"1: {first!r}")
print(f"2: {second!r}")
Каждый вызов readline() читает одну строку и смещает указатель. В конце строки остаётся \n.
Пример 4. Чтение всех строк в список
# example_04_readlines.py
with open("example.txt", "r", encoding="utf-8") as file:
lines = file.readlines()
print(type(lines))
print(lines)
readlines() возвращает список строк. Каждый элемент содержит символ \n в конце, кроме последней строки, если файл не заканчивается переводом строки.
Пример 5. Чтение файла в цикле
# example_05_loop.py
with open("example.txt", "r", encoding="utf-8") as file:
for line in file:
print(line, end="")
Файл читается построчно, не загружая весь файл в память. Это лучший способ для больших файлов.
Пример 6. Запись строки методом write()
# example_06_write.py
with open("users.txt", "w", encoding="utf-8") as file:
file.write("ID: 201 | Name: John | Age: 25 | Status: Active\n")
Режим "w" создаёт файл, если его нет, или перезаписывает существующий. Символ \n добавлен вручную.
Пример 7. Запись списка строк методом writelines()
# example_07_writelines.py
data = [
"ID: 202 | Name: Alice | Age: 30 | Status: Inactive\n",
"ID: 203 | Name: Bob | Age: 27 | Status: Active\n",
]
with open("users.txt", "w", encoding="utf-8") as file:
file.writelines(data)
writelines() записывает строки подряд. Без \n все строки окажутся в одной линии.
Пример 8. Добавление в конец файла
# example_08_append.py
with open("users.txt", "a", encoding="utf-8") as file:
file.write("ID: 204 | Name: Charlie | Age: 22 | Status: Active\n")
Режим "a" не удаляет старые данные, а дописывает новую строку в конец файла.
Пример 9. Режим r+ — чтение и запись
# example_09_rplus.py
with open("users.txt", "r+", encoding="utf-8") as file:
content = file.read()
print("Текущее содержимое:")
print(content)
file.write("ID: 205 | Name: Diana | Age: 29 | Status: Inactive\n")
Режим "r+" требует, чтобы файл существовал. После read() указатель в конце, поэтому write() дописывает данные.
Пример 10. Режим x — безопасное создание файла
# example_10_x.py
try:
with open("new_file.txt", "x", encoding="utf-8") as file:
file.write("Created in mode 'x'.\n")
print("Файл создан.")
except FileExistsError:
print("Ошибка: файл уже существует.")
Режим "x" помогает избежать случайной перезаписи существующего файла.
Пример 11. Несколько файлов в одном with
# example_11_multiple.py
with (
open("example.txt", "r", encoding="utf-8") as infile,
open("output.txt", "w", encoding="utf-8") as outfile,
):
for line in infile:
outfile.write(line.upper())
Открываем файл для чтения и файл для записи одновременно. Оба файла закроются автоматически. Этот пример копирует содержимое, преобразуя строки в верхний регистр.
Пример 12. Обработка ошибок при открытии
# example_12_errors.py
filename = input("Введите имя файла: ")
try:
with open(filename, "r", encoding="utf-8") as file:
print(file.read())
except FileNotFoundError:
print(f"Ошибка: файл '{filename}' не найден.")
except UnicodeDecodeError:
print(f"Ошибка: не удалось прочитать файл '{filename}' с кодировкой utf-8.")
При работе с файлами важно обрабатывать возможные исключения, особенно FileNotFoundError.
Как запустить в VS Code
- Создайте файл, например
file_examples.py. - Скопируйте код одного из примеров выше.
- Создайте рядом файл с данными, например
example.txt. - Откройте терминал в VS Code (Ctrl + `).
- Убедитесь, что активировано виртуальное окружение:
venv\Scripts\activate(Windows) илиsource venv/bin/activate(Mac/Linux). - Запустите:
python file_examples.py