Метод os.fdopen() в Python3

Python3 OS 文件/目录方法Методы файлов/каталогов Python3 OS


Обзор

Метод os.fdopen() используется для создания файлового объекта из файлового дескриптора fd и возвращает этот файловый объект.

Этот метод является псевдонимом встроенной функцииopen()и может принимать те же аргументы. Единственное отличие состоит в том, что первый параметр fdopen() должен быть целым числом.

Синтаксис

fdopen()Синтаксис метода:

os.fdopen(fd, [, mode[, bufsize]]);

Parameters

  • fd-- Дескриптор открытого файла. В Unix дескриптор — это небольшое целое число.

  • mode-- Необязательный. Как и у встроенной функции open в Python, параметр mode может задавать 'r,w,a,r+,w+,a+' и т. д., а также указывать, доступен ли файл только для чтения или для чтения/записи, и открывается ли файл в двоичном или текстовом режиме. Эти параметры аналогичны параметру mode, указанному в функции fopen в <stdio.h> в языке C.

  • bufsize-- Необязательный. Указывает, буферизуется ли возвращаемый файловый объект: bufsize=0 означает отсутствие буферизации; bufsize=1 означает построчную буферизацию файла; bufsize=положительное число означает использование буфера указанного размера в байтах, но этот размер не является точным; bufsize=отрицательное число означает использование размера буфера по умолчанию в системе. Для символьных устройств tty это обычно построчная буферизация, тогда как для других файлов обычно используется полная буферизация. Если этот параметр не указан, используются настройки буферизации по умолчанию в системе.

Возвращаемое значение

Файловый объект, возвращаемый через файловый дескриптор.

Пример

В следующем примере демонстрируется использование метода fdopen():

Пример (Python 3.0+)

#!/usr/bin/python3 import os, sys # Открыть файл fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT⟧4⟧# Получить файловый объект указанного выше файла ) # Get the file object of the above file fo = os.fdopen(fd⟧4⟧# Получить позицию, "w+") # Get current position print ("Текущая позиция указателя ввода-вывода :%d" % fo.tell()) # Записать строку fo.write( "Python — отличный язык.\nДа, он отличный!!\n"); # Прочитать содержимое os.lseek(fd, 0, 0) str = os.read(fd, 100) print ("Прочитанная строка: ", str) # Получить текущую позицию print ("Текущая позиция указателя I/O :%d" % fo.tell()) # Закрыть файл os.close( fd ) print ("Файл успешно закрыт!!")

Вывод вышеприведённой программы:

Current I/O pointer position :0
Read String is :  This is testPython is a great language.
Yeah its great!!

Current I/O pointer position :45
关闭文件成功!!

Python3 OS 文件/目录方法Методы файлов/каталогов Python3 OS

Другие расширения