6.1.2 File Object Creation
Keywords: lib

##
6.1.2 File Object Creation

These functions create new file objects.

`fdopen` (fd[, mode[, bufsize]])
  Return an open file object connected to the file descriptor fd. The mode and bufsize arguments have the same meaning as the corresponding arguments to the built-in `open()` function. Availability: Macintosh, Unix, Windows.

`popen` (command[, mode[, bufsize]])
  Open a pipe to or from command. The return value is an open file object connected to the pipe, which can be read or written depending on whether mode is `'r'` (default) or `'w'`. The bufsize argument has the same meaning as the corresponding argument to the built-in `open()` function. The exit status of the command (encoded in the format specified for `wait()`) is available as the return value of the `close()` method of the file object, except that when the exit status is zero (termination without errors), `None` is returned. Availability: Unix, Windows.

  Changed in version 2.0: This function worked unreliably under Windows in earlier versions of Python. This was due to the use of the `_popen()` function from the libraries provided with Windows. Newer versions of Python do not use the broken implementation from the Windows libraries.

`tmpfile` ()
  Return a new file object opened in update mode ("`w+`"). The file has no directory entries associated with it and will be automatically deleted once there are no file descriptors for the file. Availability: Unix.

For each of these `popen()` variants, if bufsize is specified, it specifies the buffer size for the I/O pipes. mode, if provided, should be the string `'b'` or `'t'`; on Windows this is needed to determine whether the file objects should be opened in binary or text mode. The default value for mode is `'t'`.

`popen2` (cmd[, bufsize[, mode]])
  Executes cmd as a sub-process. Returns the file objects `(child_stdin, child_stdout)`. New in version 2.0.

`popen3` (cmd[, bufsize[, mode]])
  Executes cmd as a sub-process. Returns the file objects `(child_stdin, child_stdout, child_stderr)`. New in version 2.0.

`popen4` (cmd[, bufsize[, mode]])
  Executes cmd as a sub-process. Returns the file objects `(child_stdin, child_stdout_and_stderr)`. New in version 2.0.

This functionality is also available in the `popen2` module using functions of the same names, but the return values of those functions have a different order.