summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
Diffstat (limited to 'Lib')
-rw-r--r--Lib/popen2.py35
1 files changed, 25 insertions, 10 deletions
diff --git a/Lib/popen2.py b/Lib/popen2.py
index 73ff77c..c4d3e4c 100644
--- a/Lib/popen2.py
+++ b/Lib/popen2.py
@@ -89,9 +89,14 @@ class Popen3:
_active.remove(self)
return self.sts
-try:
- from os import popen2
-except NameError:
+if hasattr(os, "popen2"):
+ def popen2(cmd, mode='t', bufsize=-1):
+ """Execute the shell command 'cmd' in a sub-process. If 'bufsize' is
+ specified, it sets the buffer size for the I/O pipes. The file objects
+ (child_stdout, child_stdin) are returned."""
+ w, r = os.popen2(cmd, mode, bufsize)
+ return r, w
+else:
def popen2(cmd, mode='t', bufsize=-1):
"""Execute the shell command 'cmd' in a sub-process. If 'bufsize' is
specified, it sets the buffer size for the I/O pipes. The file objects
@@ -104,9 +109,14 @@ except NameError:
inst = Popen3(cmd, 0, bufsize)
return inst.fromchild, inst.tochild
-try:
- from os import popen3
-except NameError:
+if hasattr(os, "popen3"):
+ def popen3(cmd, mode='t', bufsize=-1):
+ """Execute the shell command 'cmd' in a sub-process. If 'bufsize' is
+ specified, it sets the buffer size for the I/O pipes. The file objects
+ (child_stdout, child_stdin, child_stderr) are returned."""
+ w, r, e = os.popen3(cmd, mode, bufsize)
+ return r, w, e
+else:
def popen3(cmd, mode='t', bufsize=-1):
"""Execute the shell command 'cmd' in a sub-process. If 'bufsize' is
specified, it sets the buffer size for the I/O pipes. The file objects
@@ -119,10 +129,15 @@ except NameError:
inst = Popen3(cmd, 1, bufsize)
return inst.fromchild, inst.tochild, inst.childerr
-try:
- from os import popen4
-except NameError:
- pass # not on unix
+if hasattr(os, "popen4"):
+ def popen4(cmd, mode='t', bufsize=-1):
+ """Execute the shell command 'cmd' in a sub-process. If 'bufsize' is
+ specified, it sets the buffer size for the I/O pipes. The file objects
+ (child_stdout_stderr, child_stdin) are returned."""
+ w, r = os.popen4(cmd, mode, bufsize)
+ return r, w
+else:
+ pass # not yet on unix
def _test():
teststr = "abc\n"