Метод write() файла Python3
Обзор
write()Метод используется для записи указанной строки в файл.
До закрытия файла или сброса буфера содержимое строки хранится в буфере, поэтому вы не сможете увидеть записанное содержимое в файле.
Если режим открытия файла включает b, то при записи содержимого файла параметр str должен быть преобразован в байтовую форму с помощью метода encode, иначе возникает ошибка: TypeError: a bytes-like object is required, not 'str'.
Синтаксис
Синтаксис метода write() выглядит следующим образом:
fileObject.write( [ str ])
Parameters
-
fileObject-- файловый объект, обычно получаемый при открытии файла функцией open().
-
str-- строка для записи в файл.
Метод write() записывает указанную строку в файл. Позиция записи зависит от текущего положения указателя файла:
Если файл открыт в режиме добавления (
"a"или"a+"), записанное содержимое будет добавлено в конец файла.Если файл открыт в режиме чтения-записи (
"r+"или"w+"), записанное содержимое перезапишет исходное содержимое, начиная с текущей позиции указателя файла.
Возвращаемое значение
Возвращает количество записанных символов.
Пример
Содержимое файла example.txt следующее:
1:www.example.com 2:www.example.com 3:www.example.com 4:www.example.com 5:www.example.com
В следующем примере демонстрируется использование метода write():
Пример
# Использовать инструкцию with для открытия файла, обеспечивая его правильное закрытие
with open("example.txt", "r+") as fo:
print("Имя файла: ", fo.name)
# Записать строку в конце файла
fo.seek(0, 2) # Переместить указатель файла в конец файла
fo.write("6:www.example.com\n") # Записать содержимое и добавить символ новой строки
# Прочитать всё содержимое файла
fo.seek(0) # Переместить указатель файла в начало файла
for index, line in enumerate(fo):
print("Строка файла %d - %s" % (index, line.strip()))
Вывод приведенного выше примера:
文件行号 0 - 1:www.example.com 文件行号 1 - 2:www.example.com 文件行号 2 - 3:www.example.com 文件行号 3 - 4:www.example.com 文件行号 4 - 5:www.example.com 文件行号 5 - 6:www.example.com
Просмотр содержимого файла:
$ cat example.txt 1:www.example.com 2:www.example.com 3:www.example.com 4:www.example.com 5:www.example.com 6:www.example.com
Примечания
Режимы файлов:
Если файл открыт в режиме только для чтения (
"r"), при вызовеwrite()вызоветio.UnsupportedOperationисключение.Если файл открыт в режиме записи (
"w"или"w+"), содержимое файла будет очищено, после чего будет записано новое содержимое.Если файл открыт в режиме добавления (
"a"или"a+"), записанное содержимое будет добавлено в конец файла.
Указатель файла:
Операция записи начинается с текущей позиции указателя файла. Если нужно записать с начала или с определённой позиции, можно использовать
seek()метод для перемещения указателя файла.
Символ новой строки:
write()Метод не добавляет новую строку автоматически. Если нужна новая строка, необходимо явно добавить\n。
Возвращаемое значение:
write()Метод возвращает количество записанных символов. Если запись не удалась, может быть вызвано исключение.
Другие расширения
Методы файлов Python3