Методы для работы с файлами в Python
Метод open()
Для открытия файла используется метод open(). Данный метод нужно использовать совместно с методом close(). Если не закрыть файл по окончанию работы это может привести к возникновению конфликтов.
Синтаксис
- путь_к_файлу — пусть к файлу, который нужно открыть;
- режим_доступа — режим доступа, который определяет, как будет открыт файл. Больше информации смотрите на странице — Режим доступа к файлу;
- кодировка — название кодировки, в которой будет открыт файл. Это может быть любая кодировка, как например windows-1251, utf-8 и т.д.
open(путь_к_файлу, mode='режим_доступа', encoding='кодировка')
Пример
Открываем файл my_file.txt в режиме доступа r и в кодировке utf-8
f = open('./my_file.txt', mode='r', encoding='utf-8')
Метод close()
Метод close() закрывает открытый файл по окончанию работы.
Синтаксис
- открытый_файл — это файл, который был открыт методом open()
открытый_файл.close()
Пример
Сначала открываем файл my_file.txt в режиме доступа r и в кодировке utf-8, а затем завершаем работу с файлом и закрываем его методом close()
f = open('./my_file.txt', mode='r', encoding='utf-8') ''' Действия над файлом ''' f.close()
Метод read()
Метод read() позволяет прочитать содержимое указанного файла после его открытия в режиме доступа r или в другом доступном режиме.
Синтаксис
- открытый_файл — это файл, который был открыт методом open()
- длина — количество символов, которое нужно прочитать из файла. Если не указать данный параметр, файл будет прочтён полностью.
открытый_файл.read(длина)
Пример
Открываем файл my_file.txt в режиме доступа r и в кодировке utf-8. Читаем файл методом read() и выводим содержимое файла на экран. Завершаем работу с файлом и закрываем его методом close()
f = open('./file.txt', mode='r', encoding='utf-8') r = f.read() print(r) f.close()
Метод readlines()
Метод readlines() позволяет прочесть содержимое файла построчно и записать значения в список. После каждой строки будет автоматически добавлена экранирующая последовательность в виде перевода строки \n
Синтаксис
- открытый_файл — это файл, который был открыт методом open()
открытый_файл.readlines()
Пример
Открываем файл my_file.txt в режиме доступа r и в кодировке utf-8. Читаем файл методом readlines() и выводим полученный результат на экран. Завершаем работу с файлом и закрываем его методом close()
f = open('./file.txt', mode='r', encoding='utf-8') r = f.readlines() print(r) f.close()
Метод write()
Метод write() позволяет записать в открытый файл новые значения и для работы с этим методом нужно открывать файл в режиме записи.
Синтаксис
- открытый_файл — это файл, который был открыт методом open()
- строка — значение, которое нужно добавить в открытый файл.
открытый_файл.write(строка)
Пример
Открываем файл my_file.txt в режиме доступа w и в кодировке utf-8. Записываем в файл новые значения Новая строка 1 и Новая строка 2, а затем закрываем файл методом close()
f = open('./file.txt', mode='w', encoding='utf-8') f.write('Новая строка 1\n') f.write('Новая строка 2\n') f.close()
Метод seek()
Метод seek() позволяет перемещать курсор в файле, который был открыт методом open(). Другими словами, можно читать файл в любом направлении.
Обратите внимание: использовать данный метод нужно очень внимательно, так как он не учитывает кодировку открытого файла и позицию курсора нужно передавать по байтам.
Синтаксис
- открытый_файл — это файл, который был открыт методом open()
- позиция — позиция курсора. Если указать значение 0, то курсор вернётся в начало файла.
открытый_файл.seek(позиция)
Пример
Открываем файл my_file.txt в режиме доступа a+ и в кодировке utf-8. Добавляем в конец файла новые данные Новая запись 1, а затем возвращаемся в начало файла при помощи метода seek() и выводим содержимое файла на экран.
with open('./my_file.txt', mode='a+', encoding='utf-8') as f: f.write('Новая запись 1\n') f.seek(0) print(f.read())
Метод tell()
Метод tell() выводит текущую позицию курсора в файле.
Синтаксис
- открытый_файл — это файл, который был открыт методом open()
открытый_файл.tell()
Пример
Открываем файл my_file.txt в режиме доступа r и в кодировке utf-8. Полностью читаем файл методом read() и выводим текущую позицию курсора методом tell()
with open('./my_file.txt', mode='r', encoding='utf-8') as f: print(f.read()) print(f'Текущая позиция курсора: {f.tell()}')