Рубрики
Без рубрики

Основы файлов Python

Взаимодействие с файловой системой позволяет хранить информацию, полученную в результате программы …. Теги с Python, Basic.

Взаимодействие с файловой системой позволяет хранить информацию, полученную в результате программы. В этой статье я расскажу об основных функционантах языка программирования Python для работы с файлами.

Встроенные инструменты Python

Основа для работы с файлами – встроенная функция Open ()

open(file, mode="rt")

Эта функция имеет два аргумента. Аргумент Файл берет строку, содержащую путь к файлу. Второй аргумент ,, Режим Позволяет указать режим, в котором вы хотите работать с файлом. По умолчанию этот аргумент принимает значение «RT», которое, и некоторые другие можно найти в таблице ниже:

р: Открывает файл в режиме только для чтения. Начинает чтение с самого начала файла и является режимом по умолчанию для функции Open ().
РБ: Открывает файл как только чтение только в двоичном формате и начинает чтение с начала файла. Хотя двоичный формат можно использовать для различных целей, он обычно используется при работе с такими вещами, как изображения, видео и т. Д.
R +: Открывает файл для чтения и записи, размещения указателя в начале файла.
W: Откроется в режиме только для записи. Указатель размещен в начале файла, и это перезаписывает любой существующий файл с тем же именем. Он создаст новый файл, если один с тем же именем не существует.
WB: Открывает файл только для записи в двоичном режиме.
W +: Открывает файл для записи и чтения.
WB +: Открывает файл для записи и чтения в двоичном режиме.
A: Открывает файл для добавления новой информации к нему. Указатель размещен в конце файла. Новый файл создается, если один с тем же именем не существует.
ab: Открывает файл для добавления в двоичный режим.
A +: Открывает файл для присоединения, так и для чтения.
AB +: Открывает файл для присоединения, так и для чтения в двоичном режиме.

Эти режимы могут быть объединены. Например, “RB Открывает двоичный файл для чтения. Объединяя «R +» или «W +», вы можете добиться открытия файла в режиме и чтение и запись одновременно с одним разницей – первый режим бросит исключение, если файл не существует, и работает в Второй режим создаст его в этом случае.

Вы можете начать работать с файлом, используя объект класса доверие TextioWrapper возвращено функцией Открыть () Отказ Этот объект имеет несколько атрибутов, с помощью которых можно получить информацию.

  • Имя – имя файла;
  • Режим – режим, в котором этот файл открыт;
  • Закрыто – Возвращает Правда Если файл был закрыт.

По завершении работы с файлом он должен быть закрыт с помощью метода Закрыть()

f = open("hello.md", "w")
# deal with this file
f.close()

Тем не менее, чем больше питоновый способ работы с встроенным файлом – использовать конструкцию с .. как .. который действует как менеджер по созданию контекста. Пример, написанный выше, может быть переписан с его помощью

with open("hello.md", "w") as f:
# deal with this file

Основное отличие состоит в том, что Python закрывает файл самостоятельно, и разработчик не нужно это помнить. И как бонус, никакие исключения не будут брошены, когда файл открыт (например, если файл не существует).

Чтение из файла

Есть несколько подходов, которые вы можете предпринять при открытии файла в читаемых режимах.

Для начала вы можете прочитать весь файл и писать все данные в нем на одной строке.

with open("hello.md", "r") as f:
    part = f.read(16)

Используя эту функцию с помощью целочисленного аргумента, можно прочитать определенное количество символов.

with open("hello.md", "r") as f:
    part = f.read(16)

Будут получены только первые 16 символов текста. Важно понимать, что при использовании этой функции несколько раз подряд, деталь с помощью этого текста будет прочитана – виртуальный курсор будет перемещаться по чтению частью текста. Его можно перемещать в определенную позицию, используя метод, если это необходимо искать ().

with open("hello.md", "r") as f: # 'Hello, world!'
    first_part = f.read(8)       # 'Hello, w'
    f.seek(4)
    second_part = f.read(8)      # 'o, world'

Другой способ состоит в том, чтобы прочитать линию файла по строке. Метод readline () Читает строку и, как правило, с помощью метода читается (), перемещает курсор – только сейчас по всей линии. Применение этого метода несколько раз приведет к читанию нескольких строк. Похоже на этот метод, другой метод позволяет читать весь файл, но строка по строке, написав их в список. Этот список можно использовать, например, как итерателен в цикле.

with open("hello.md", "r") as f:
    for line in f.readlines():
        print(line)

Тем не менее, здесь тоже больше питоновый путь. Он состоит в том, что сам объект IO. TextioWrapperhas итератор, который возвращает линию по линии. Благодаря этому нет необходимости читать весь файл, сохраняя его в список, но вы можете динамически прочитать линию файла по строке. И делать это кратко.

with open("hello.md", "r") as f:
    for line in f:
        print(line)

Пишите в файл

Функциональность ввода данных в файл не зависит от режима – добавления данных или перезаписи файла. Есть также несколько подходов к выполнению этой операции.

Самый простой и самый логичный – использовать функцию написать()

with open("hello.md", "w") as f:
    f.write("Hello from write function")

Важно, чтобы только строки могли быть переданы как аргумент на функцию. Если необходимо написать другую информацию, то он должен быть явно отличен в тип строки, используя методы __str __ (Я) для объектов или отформатированных струн.

Можно написать большое количество данных в файл, если он может быть представлен в виде списка строк.

with open("hello.md", "w") as f:
    f.writelines("you can put some large data here")

Есть еще одна вещь, которая связана с тем, что функции Написать () и Writelines () Не помещает автоматически символ перерыва линий, и этот разработчик должен контролировать себя.

Есть еще один, менее известный метод, но, возможно, самый удобный из представленных. И так же странно, как может показаться, он состоит в использовании функции Печать () Отказ Сначала это утверждение может показаться странным, потому что это общее знание, что он используется для вывода на консоль. И это правда. Но если вы пройдете файлообъект типа в качестве дополнительного аргумента доверие TextioWrapper , который является файловым объектом, с которым мы работаем, то выходной поток функции является Печать () Перенаправлено с консоли в файл.

with open("hello.md", "w") as f:
    print("put some data here", file=f)

Сила этого подхода заключается в том, что Печать () Вы можете пройти не обязательно строковые аргументы – при необходимости сама функция преобразует их в строковый тип.

Это завершает знакомство с основными функциональными возможностями работы с файлами. В то же время следует сказать, что возможности языка Python не ограничиваются им. Существует большое количество библиотек, которые позволяют работать с определенными типами файлов, а также доставлять более тесное взаимодействие с файловой системой. Вместе они предоставляют разработчикам легко и удобно работать с файлами.

Оригинал: “https://dev.to/b3ns44d/python-file-basics-2kdb”