Python os.fdopen()-Methode
Python OS Datei-/Verzeichnismethoden
Übersicht
Die Methode os.fdopen() wird verwendet, um aus einem Dateideskriptor fd ein Dateiobjekt zu erstellen, und gibt dieses Dateiobjekt zurück.
Verfügbar unter Unix und Windows.
Syntax
fdopen()Das Syntaxformat der Methode lautet wie folgt:
os.fdopen(fd, [, mode[, bufsize]]);
Parameters
fd-- Der Dateideskriptor der geöffneten Datei. Unter Unix ist der Deskriptor eine kleine Ganzzahl.
mode-- Optional. Wie der Parameter bufsize und die in Python integrierte open-Funktion kann der Parameter mode 'r,w,a,r+,w+,a+,b' usw. angeben, was angibt, ob die Datei schreibgeschützt oder lesbar/schreibbar ist und ob die Datei im Binär- oder Textmodus geöffnet wird. Diese Parameter ähneln dem Parameter mode, der in der Funktion fopen in C's <stdio.h> angegeben wird.
bufsize-- Optional. Gibt an, ob das zurückgegebene Dateiobjekt gepuffert ist: bufsize=0 bedeutet keine Pufferung; bufsize=1 bedeutet, dass das Dateiobjekt zeilenweise gepuffert ist; bufsize=positive Zahl bedeutet, dass ein Puffer mit einer bestimmten Größe in Bytes verwendet wird, aber diese Größe ist nicht exakt; bufsize=negative Zahl bedeutet, dass eine systemstandardmäßige Puffergröße verwendet wird. Bei tty-Zeichengeräten ist es normalerweise zeilenweise gepuffert, während es bei anderen Dateien normalerweise vollständig gepuffert ist. Wenn dieser Parameter nicht angegeben wird, wird die systemstandardmäßige Puffereinstellung verwendet.
Rückgabewert
Das über den Dateideskriptor zurückgegebene Dateiobjekt.
Beispiel
Das folgende Beispiel demonstriert die Verwendung der Methode fdopen():
#!/usr/bin/python # -*- coding: UTF-8 -*- import os, sys # 打开文件 fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT ) # 获取以上文件的对象 fo = os.fdopen(fd, "w+") # 获取当前文章 print "Current I/O pointer position :%d" % fo.tell() # 写入字符串 fo.write( "Python is a great language.\nYeah its great!!\n"); # 读取内容 os.lseek(fd, 0, 0) str = os.read(fd, 100) print "Read String is : ", str # 获取当前位置 print "Current I/O pointer position :%d" % fo.tell() # 关闭文件 os.close( fd ) print "关闭文件成功!!"
Das Ausführen des obigen Programms erzeugt die folgende Ausgabe:
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 关闭文件成功!!Andere Erweiterungen