w+
|
Открывает файл для чтения и записи. Указатель стоит в начале файла. Создает файл с именем имя_файла, если такового не существует.
|
wb+
|
Открывает файл для чтения и записи в двоичном формате. Указатель стоит в начале файла. Создает файл с именем имя_файла, если такового не существует.
|
a
|
Открывает файл для добавления информации в файл. Указатель стоит в конце файла. Создает файл с именем имя_файла, если такового не существует.
|
ab
|
Открывает файл для добавления в двоичном формате. Указатель стоит в конце файла. Создает файл с именем имя_файла, если такового не существует.
|
a+
|
Открывает файл для добавления и чтения. Указатель стоит в конце файла. Создает файл с именем имя_файла, если такового не существует.
|
ab+
|
Открывает файл для добавления и чтения в двоичном формате. Указатель стоит в конце файла. Создает файл с именем имя_файла, если такового не существует.
|
Атрибуты файлового объекта в Python.
Как только файл был открыт и у вас появился файловый объект, вы можете получить следующую информацию о нем:
file.closed
|
Возвращает True если файл был закрыт.
|
file.mode
|
Возвращает режим доступа, с которым был открыт файл.
|
file.name
|
Возвращает имя файла.
|
file.softspace
|
Возвращает False если при выводе содержимого файла следует отдельно добавлять пробел.
|
Например:
| my_file = open("some.txt", "w")
| print ("Имя файла: ", my_file.name)
| print ("Файл закрыт: ", my_file.closed)
| print ("В каком режиме файл открыт: ", my_file.mode)
| print ("Пробелы: ", my_file.softspace)
Закрытие файла в Python. Метод close().
Метод файлового объекта close() автоматически закрывает файл, при этом теряется любая несохраненная информация. Работать с файлом (читать, записывать) после этого нельзя.
Python автоматически закрывает файл если файловый объект к которому он привязан присваивается другому файлу. Однако, хорошей практикой будет вручную закрывать файл командой close().
| my_file = open("some.txt")
| print ("Имя файла: ", my_file.name)
| print ("Файл закрыт: ", my_file.closed)
| my_file.close()
| print ("А теперь закрыт: ", my_file.closed)
Чтение и запись файлов в Python
Для файлового объекта доступен целый набор методов, чтобы облегчить нашу работу с файлом.
Запись в файл в Python. Метод write().
Метод write() записывает любую строку в открытый файл. Важно помнить, что строки в Python могут содержать двоичные данные, а не только текст.
Метод write() не добавляет символ переноса строки ('\n') в конец файла.
Синтаксис метода write().
| my_file.write(string);
Например:
| my_file = open("some.txt", "w")
| my_file.write("Мне нравится Python!\nЭто классный язык!")
| my_file.close()
Вышеприведенный код создаст файл some.txt и запишет в него указанную строку.
Чтение из файла в Python. Метод read().
Метод read() читает строку из открытого файла.
Синтаксис метода read().
| my_file.read([count])
Необязательный параметр count - это количество байт, которые следует прочитать из открытого файла. Этот метод читает информацию с начала файла и, если параметр count не указан, до конца файла.
Например, прочтем созданный нами файл some.txt:
1 | my_file = open("some.txt")
2 | my_string = my_file.read()
3 | print ("Было прочитано:")
4 | print (my_string)
5 | my_file.close()
Как узнать позицию указателя в файле в Python.
После того как вы вызвали метод read() на файловом объекте, если вы повторно вызовете read(), то увидите лишь пустую строку. Это происходит потому, что после первого прочтения указатель находится вконце файла. Для того чтобы узнать позицию указателя можно использовать метод tell().
Например:
| my_file = open("some.txt")
| my_file.read(10)
| print ("Я на позиции: ", my_file.tell())
| my_file.close()
Говоря проще, метод tell() сообщает в скольки байтах от начала файла мы сейчас находимся.
Чтобы перейти на нужную нам позицию, следует использовать другой метод - seek().
Синтаксис метода seek().
| my_file.seek(offset, [from])
Аргумент offset указывет на сколько байт перейти. опциональный аргумент from означает позицию, с которой начинается движение. 0 - означает начало файла, 1 нынешняя позиция, 2 - конец файла.
Читать дальше