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.
Changed in version 2.3: When specified, the mode
argument must now start with one of the letters "r",
"w", or "a",
otherwise a ValueError is raised.
-
| 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.
-
- Return a new file object opened in update mode ("w+b").
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, Windows.
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'.
These methods do not make it possible to retrieve the return code from the child processes.
The only way to control the input and output streams and also retrieve the return codes is to
use the Popen3 and Popen4 classes from the popen2 module; these are only available
on Unix.
For a discussion of possible deadlock conditions related to the use of these functions, see
``Flow Control Issues'' (section 6.8.2).
-
| popen2( |
cmd[, mode[, bufsize]]) |
- Executes cmd as a sub-process. Returns the file objects
(child_stdin,
child_stdout). Availability: Unix,
Windows. New in version 2.0.
-
| popen3( |
cmd[, mode[, bufsize]]) |
- Executes cmd as a sub-process. Returns the file objects
(child_stdin,
child_stdout, child_stderr). Availability: Unix, Windows. New in
version 2.0.
-
| popen4( |
cmd[, mode[, bufsize]]) |
- Executes cmd as a sub-process. Returns the file objects
(child_stdin,
child_stdout_and_stderr). Availability: Unix, Windows. 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.
|