Python Os.fdopen() Method



Python method fdatasync() forces write of file with filedescriptor fd to disk. This does not force an update of metadata. If you want to flush your buffer then you can use this method.

Note −This method is available in Python 2.6 onwards.


Following is the syntax for fdopen() method:

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


  • fd − This is the file descriptor for which a file object is to be returned.
  • mode − This optional argument is a string indicating how the file is to be opened. The most commonly-used values of mode are 'r' for reading, 'w' for writing (truncating the file if it already exists), and 'a' for appending.
  • bufsize − This optional argument specifies the file's desired buffer size: 0 means unbuffered, 1 means line buffered, any other positive value means use a buffer of (approximately) that size.

Return Value

This method returns an open file object connected to the file descriptor.


The following example shows the usage of fdopen() method:


import os, sys

# Open a file
fd = os.open( "foo.txt", os.O_RDWR'os.O_CREAT )

# Now get a file object for the above file.
fo = os.fdopen(fd, "w+")

# Tell the current position
print "Current I/O pointer position :%d" % fo.tell()

# Write one string
fo.write( "Python is a great language.\nYeah its great!!\n");

# Now read this file from the beginning.
os.lseek(fd, 0, 0)
str = os.read(fd, 100)
print "Read String is : ", str

# Tell the current position
print "Current I/O pointer position :%d" % fo.tell()

# Close opened file

print "Closed the file successfully!!"

When we run the above program, it produces the following result:

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
Closed the file successfully!!