Файловые методы Python

Файловые методы используются для манипулирования файлами и их содержимым в любой конкретной системе. В Python для работы с файлами есть предопределенные методы, такие как open(), read(), readline(), next(), write(), writelines(), truncate(), seek() и close().

Метод open(), как следует из названия, используется для открытия файла, а опции r, w, a и т.д. расширяют область применения метода. Аналогично, write() можно комбинировать с несколькими параметрами, такими как r, a и w.

Файловые методы, доступные в Python

Начнем с методов для чтения файлов.

1. Метод open()

Эта функция позволяет открыть файл из определенного места и с определенным режимом доступа.

Синтаксис:

open(address,access_mode)

Здесь address – это местоположение файла в вашей локальной системе. access_mode – это режим доступа (только для чтения, только для записи, и для чтения, и для записи, и т.д.).

Список всех режимов:

  • r: только для чтения
  • w: только для записи
  • r+: и для чтения, и для записи
  • w+: и для записи, и для чтения
  • a: для добавления в файл
  • a+: для добавления в файл и для чтения

2. Метод read()

Эта функция позволяет прочитать весь файл в виде строки. Однако можно ограничить чтение определенным лимитом, указав размер: read(size).

Пример:

f = open("C:/Users/Test/desktop/Hello.txt", "r")
print(f.read())


ff = open("C:/Users/Test/desktop/Hello.txt", "r")
print(ff.read(5))

# Вывод:
# hi there Rick. I am good.
# hi th

3. Метод readline()

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

Наш файл “Hello.txt” содержит 3 строки:

hi there Rick. I am good.
Rick met Harry and invited her for dinner.
Both became good friends.

Пример чтения этого файла при помощи метода read():

f = open("C:/Users/Test/desktop/Hello.txt", "r")
print(f.read())

Вывод:

hi there Rick. I am good.
Rick met Harry and invited her for dinner.
Both became good friends.

Пример чтения того же файла при помощи метода readline():

ff = open("C:/Users/Test/desktop/Hello.txt", "r")
print(ff.readline())

Вывод:

hi there Rick. I am good.

Как видно, из всех трех строк, имеющихся в файле, readline() вывел только первую.

4. Метод next()

Функция next() полезна при итерации файла в цикле. При каждом ее вызове захватывается следующая строка.

Давайте еще раз попробуем прочесть наш файл, только теперь при помощи next():

ff = open("C:/Users/Test/desktop/Hello.txt", "r")
print(ff.next())
print(ff.next())

# Вывод:
# hi there Rick. I am good.
# Rick met Harry and invited her for dinner.

5. Метод write()

Функция file.write() используется для записи содержимого в выходной файл.

Пример:

f = open("sample_EDUCBA.txt", "a")
f.write("This is my content!!")
f.close()

Как можно заметить, указан параметр "a". Здесь это означает добавление содержимого в данный файл. Если файл существует, в него будет добавлена строка (старое содержимое тоже останется). Если такого файла нет, он будет создан, а затем в него будет записана строка. Вот три типа параметров, которые могут быть использованы здесь:

  • x: создание файла. Если файл с таким именем уже существует, будет выдана ошибка.
  • a: добавление содержимого в файл. Если файл не существует, он будет создан.
  • w: запись в файл. Если файл не существует, он будет создан.

6. Метод writelines()

Файловые методы readlines() и writelines() похожи. Первый используется для чтения файла строка за строкой, итерациями. А второй – для записи строка за строкой, если эти строки представлены в итерируемом объекте.

Код:

f = open("sample_EDUCBA.txt","w+")
iter_seq = ["This is good platform\n", "Datascience is buzzword"]
line = f.writelines(iter_seq)
f.close()

Созданный файл имеет следующий вид:

созданный файл

7. Метод truncate()

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

Пример: У нас есть входной файл sample_EDUCBA.txt со следующим содержимым:

This is good platform
Datascience iz buzzword

Давайте сперва прочитаем этот файл, затем обрежем его, а затем попробуем прочесть снова:

ff = open("C:/Users/Test/desktop/sample_EDUCBA.txt", "r+")
print(ff.read())
ff = open("C:/Users/Test/desktop/sample_EDUCBA.txt", "w+")
ff.truncate()
ff = open("C:/Users/Test/desktop/sample_EDUCBA.txt", "r+")
print(ff.read())

Шаг 1, читаем файл:

вывод функции truncate()

Шаг 2, читаем файл после обрезки:

вывод функции truncate()

Как можно заметить, после обрезки на консоль ничего не выводится.

8. Метод seek()

С помощью этой функции можно сместить указатель на начало чтения или записи. Значение по умолчанию – 0.

Пример со значением по умолчанию:

ff = open("C:/Users/i505860/sample_EDUCBA.txt", "r+")
ff.seek(0)
print(ff.readline())

# Вывод:
# hi there Rick. I am good.

А теперь зададим позицию указателя:

ff = open("C:/Users/i505860/sample_EDUCBA.txt", "r+")
ff.seek(3)
print(ff.readline())

# Вывод:
# there Rick. I am good.

9. Метод close()

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

Пример:

f = open("sample_EDUCBA.txt","w+")
iter_seq1 = ["This is good platform\n", "Datascience is buzzword"]
line = f.writelines( iter_seq1 )
f.close()
iter_seq2 = ["Analytics Insights\n", "Machine Learning"]
f.writelines( iter_seq2 )

Вывод:

функция close()

Мы создали файловый объект и записали в него строки “This is good platform\n”, “Data science is the buzzword.” Затем файл закрылся. После этого мы попробовали записать в него еще пару предложений (“Analytics Insights\n”, “Machine Learning”). Это вызвало ошибку – ValueError.

Заключение

Файловые методы Python просты в использовании. При этом они играют очень важную роль при работе с файлами. Изучите их хорошенько и потренируйтесь применять на практике!

Перевод статьи Priya Pedamkar «Python File Methods».

1 комментарий к “Файловые методы Python”

  1. Пингбэк: Как в Python добавить текст в файл - pythonturbo

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *