Python os.fdopen() メソッド
概要
os.fdopen() メソッドは、ファイルディスクリプタ fd を介してファイルオブジェクトを作成し、このファイルオブジェクトを返します。
Unix、Windowsで利用可能です。
構文
fdopen()メソッドの構文形式は次のとおりです:
os.fdopen(fd, [, mode[, bufsize]]);
パラメータ
fd-- 開かれたファイルの記述子で、Unixでは記述子は小さい整数です。
mode-- オプション。bufsize パラメータや Python 組み込みの open 関数と同じように、mode パラメータは「r,w,a,r+,w+,a+,b」などを指定できます。これは、ファイルが読み取り専用か読み書き可能か、およびファイルをバイナリ形式とテキスト形式のどちらで開くかを示します。これらのパラメータは、C言語の <stdio.h> の fopen 関数で指定される mode パラメータに似ています。
bufsize-- オプション。返されるファイルオブジェクトがバッファリングを行うかどうかを指定します。bufsize=0 はバッファリングなしを意味します。bufsize=1 はそのファイルオブジェクトが行バッファリングであることを意味します。bufsize=正の数は、指定されたサイズのバッファ(単位はバイト)を使用することを意味しますが、そのサイズは正確ではありません。bufsize=負の数は、システムデフォルトサイズのバッファを使用することを意味し、tty文字デバイスでは通常行バッファリングで、他のファイルでは通常全バッファリングです。このパラメータが指定されていない場合は、システムデフォルトのバッファ設定が使用されます。
戻り値
ファイルディスクリプタを通じて返されるファイルオブジェクト。
例
以下の例は 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 "关闭文件成功!!"
上記のプログラムを実行すると、出力結果は次のようになります:
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 关闭文件成功!!その他の拡張
Python OS ファイル/ディレクトリメソッド