Как прочитать файл на Python (текст и JSON)
Узнайте, как читать файлы на Python. Освойте оператор open, readline, readlines и безопасную обработку исключений файлов.
Обзор
Работа с файлами — важный навык для любого разработчика Python. Чтение данных из файлов позволяет обрабатывать текстовые документы, конфигурации, журналы, базы данных и структурированные наборы данных. Python делает операции с файлами удивительно простыми благодаря встроенной функции open().
При работе с файлами наиболее важным является использование оператора `with`, который создает диспетчер контекста. Шаблон `with open(...)` гарантирует, что файл будет безопасно и правильно закрыт, как только выполнение покинет блок, даже если внутри возникнет исключение. Если вы забудете закрыть файлы, это может привести к утечкам памяти, повреждению файлов и блокировке ресурсов других системных процессов.
Python предоставляет несколько методов для чтения данных после открытия файла. Метод `.read()` возвращает все содержимое файла в виде одной строки. Метод `.readline()` читает одну строку, что делает его идеальным для перебора гигантских файлов, которые не помещаются в память. Метод `.readlines()` считывает все строки и возвращает их в виде списка строк. Понимание того, какой метод использовать, предотвращает исчерпание памяти и делает ваши программы более масштабируемыми.
Код и вывод выполнения
Этот сценарий демонстрирует безопасное чтение содержимого файла с использованием диспетчера контекста, а также построчное чтение и обработку ошибок.
# Writing a dummy file first
with open("sample.txt", "w") as f:
f.write("Line 1: Welcome to PyRun!\nLine 2: Python runs in the browser.\nLine 3: Clean and simple.")
# 1. Read entire file contents
with open("sample.txt", "r") as file:
content = file.read()
print("--- Entire File ---")
print(content)
# 2. Read line-by-line (Memory efficient for large files)
print("\n--- Line by Line ---")
with open("sample.txt", "r") as file:
for line in file:
print("Read line:", line.strip())--- Entire File ---
Line 1: Welcome to PyRun!
Line 2: Python runs in the browser.
Line 3: Clean and simple.
--- Line by Line ---
Read line: Line 1: Welcome to PyRun!
Read line: Line 2: Python runs in the browser.
Read line: Line 3: Clean and simple.Пошаговая реализация
- Используйте оператор with open("filename", "r") as file, чтобы безопасно открыть файл для чтения.
- Вызовите file.read(), чтобы загрузить все содержимое файла в переменную.
- Выполняйте итерацию непосредственно над файловым объектом, используя цикл for, чтобы эффективно читать его построчно.
- Всегда указывайте кодировку (например,coding="utf-8") для совместимости с международными символами.
Часто задаваемые вопросы
Почему мне следует использовать оператор with для открытия файлов?
Оператор with создает диспетчер контекста, который автоматически закрывает файл при выходе из блока, даже если возникают ошибки.
Как мне обработать FileNotFoundError?
Оберните оператор open() в блок try-кроме, перехватывая FileNotFoundError: try: с open(...) ... кроме FileNotFoundError: print("Файл не найден!").
Связанные темы
Узнайте, как записывать текст в файлы на Python. Освойте разницу между режимами записи («w») и добавления («a») с помощью безопасных контекстных менеджеров.
Как обрабатывать исключения в PythonУзнайте, как обрабатывать исключения в Python с помощью блоков try, кроме, else иfinally. Пишите безошибочный и устойчивый к сбоям код Python.
Рекомендуемые ресурсы Python
Расширьте свои знания с помощью соответствующих интерактивных руководств, шпаргалок и сравнений кода.
Объяснение переменных и типов данных Python
Понимать переменные Python и основные типы данных (строки, целые числа, числа с плавающей запятой, логические значения). Полное руководство для начинающих по распределению памяти в Python.
Шпаргалка по словарным методам Python
Изучите словарные методы Python. Полное справочное руководство по вставке, извлечению, обновлению и проверке пар ключ-значение.
Python против JavaScript: какой язык программирования лучше?
Всестороннее сравнение Python и JavaScript. Изучите синтаксические различия, производительность, варианты использования (серверная и клиентская части) и примеры кодирования.