Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

Работа с файлами в Python: открытие, чтение, запись и управление

Ввод-вывод файлов в Python

Научитесь открывать, читать, писать и закрывать файлы в Python с понятными примерами и лучшими практиками.

Видео: Чтение и запись файлов в Python

Файлы

Файлы — это именованные области на диске, хранящие данные постоянно. Поскольку ОЗУ易失но, мы полагаемся на файлы для сохранения информации между запусками программы.

При работе с файлом типичная последовательность: открыть → читать/писать → закрыть.


Открытие файлов в Python

Встроенная функция open() возвращает файловый объект для выполнения операций ввода-вывода. Её сигнатура:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

Ключевые моменты:

РежимОписание
rЧтение (по умолчанию)
wЗапись; создаёт новый или усекает существующий
xИсключительное создание; ошибка, если файл существует
aДозапись; создаёт, если отсутствует
tТекстовый режим (по умолчанию)
bБинарный режим
+Чтение и запись
f = open("test.txt")           # r/rt
f = open("test.txt", "w")      # запись
f = open("img.bmp", "r+b")     # чтение/запись бинарный

Так как a — это символ, он не эквивалентен числу 97, если не закодирован. Явно задайте encoding='utf-8' для текстовых файлов.

f = open("test.txt", mode='r', encoding='utf-8')

Закрытие файлов в Python

Правильное закрытие файла освобождает системные ресурсы. Метод close() прост, но использование менеджера контекста — самый безопасный паттерн.

with open("test.txt", encoding='utf-8') as f:
    # выполняем файловые операции
    pass

Менеджер контекста гарантирует закрытие даже при исключении. Если открываете файл вручную, оберните в блок try...finally.

try:
    f = open("test.txt", encoding='utf-8')
    # операции
finally:
    f.close()

Запись в файлы в Python

Используйте режимы w, a или x для записи. w перезаписывает существующее содержимое; a сохраняет его.

Метод write() принимает строку (или bytes для бинарного) и возвращает количество записанных символов.

with open("test.txt", "w", encoding='utf-8') as f:
    f.write("my first file\n")
    f.write("This file\n\n")
    f.write("contains three lines\n")

Не забывайте включать символы новой строки для разделения строк.


Чтение файлов в Python

Открывайте с режимом r. Метод read() принимает необязательный аргумент size; без него читает до EOF.

f = open("test.txt", "r", encoding='utf-8')
print(f.read(4))  # 'This'
print(f.read(4))  # ' is '
print(f.read())   # оставшееся содержимое
f.close()

Перемещайте курсор с seek() и запрашивайте позицию с tell():

print(f.tell())  # текущая позиция
f.seek(0)        # возврат в начало
print(f.read())  # прочитать всё

Эффективная итерация по строкам:

for line in f:
    print(line, end='')

Альтернативно, readline() и readlines() дают доступ по строкам.


Методы файловых объектов в Python

Ниже — краткий справочник самых распространённых методов файлов в текстовом режиме.

МетодОписание
close()Закрывает файл.
detach()Отсоединяет базовый бинарный буфер.
fileno()Возвращает файловый дескриптор.
flush()Сбрасывает буфер записи.
isatty()Проверяет, является ли поток интерактивным.
read(n)Читает до n символов; None читает до EOF.
readable()Является ли поток читаемым?
readline(n=-1)Читает одну строку, до n символов.
readlines(n=-1)Возвращает список строк, до n символов.
seek(offset, from_=SEEK_SET)Перемещает курсор в offset от from_ (начало, текущее, конец).
seekable()Поддерживает ли поток произвольный доступ?
tell()Получает текущую позицию курсора.
truncate(size=None)Изменяет размер файла до size байт.
writable()Является ли поток записываемым?
write(s)Записывает строку s; возвращает число записанных символов.
writelines(lines)Записывает итерируемую коллекцию строк.

Python

  1. Ввод-вывод в C: scanf() и printf() — подробное руководство
  2. Освоение типов данных в Python: практическое руководство
  3. Мастерство операторов Python: Полное руководство
  4. Словари в Python: создание, манипуляции и продвинутые техники
  5. Работа с файлами в Python: открытие, чтение, запись и управление
  6. Проверка существования файлов и директорий в Python — практическое руководство
  7. Python JSON: кодирование, декодирование и работа с файлами — практическое руководство
  8. Освоение ввода-вывода файлов в C: создание, открытие и управление файлами
  9. Работа с файлами в C#: FileStream, StreamReader, StreamWriter и File API
  10. Ввод-вывод файлов в Python: полное руководство по операциям I/O