[Python-checkins] CVS: python/dist/src/Lib popen2.py,1.9,1.10

Fredrik Lundh python-dev@python.org
Sun, 9 Jul 2000 10:59:34 -0700


Update of /cvsroot/python/python/dist/src/Lib
In directory slayer.i.sourceforge.net:/tmp/cvs-serv4740/Lib
Modified Files:
	popen2.py 
Log Message:
- added popen.popen2/popen3/popen4 support for
 windows.
- added optional mode argument to popen2/popen3
 for unix; if the second argument is an integer,
 it's assumed to be the buffer size.
- changed nt.popen2/popen3/popen4 return values
 to match the popen2 module (stdout first, not
 stdin).
Index: popen2.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/popen2.py,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -r1.9 -r1.10
*** popen2.py	2000年02月04日 15:10:34	1.9
--- popen2.py	2000年07月09日 17:59:31	1.10
***************
*** 90,118 ****
 return self.sts
 
! def popen2(cmd, 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."""
! _cleanup()
! inst = Popen3(cmd, 0, bufsize)
! return inst.fromchild, inst.tochild
 
! def popen3(cmd, 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."""
! _cleanup()
! inst = Popen3(cmd, 1, bufsize)
! return inst.fromchild, inst.tochild, inst.childerr
 
 def _test():
 teststr = "abc\n"
 print "testing popen2..."
 r, w = popen2('cat')
 w.write(teststr)
 w.close()
 assert r.read() == teststr
 print "testing popen3..."
! r, w, e = popen3(['cat'])
 w.write(teststr)
 w.close()
--- 90,142 ----
 return self.sts
 
! try:
! from os import popen2
! except NameError:
! 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."""
! if type(mode) is type(0) and bufsize == -1:
! bufsize = mode
! mode = 't'
! assert mode in ('t', 'b')
! _cleanup()
! inst = Popen3(cmd, 0, bufsize)
! return inst.fromchild, inst.tochild
 
! try:
! from os import popen3
! except NameError:
! 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."""
! if type(mode) is type(0) and bufsize == -1:
! bufsize = mode
! mode = 't'
! assert mode in ('t', 'b')
! _cleanup()
! inst = Popen3(cmd, 1, bufsize)
! return inst.fromchild, inst.tochild, inst.childerr
 
+ try:
+ from os import popen4
+ except NameError:
+ pass # not on unix
+ 
 def _test():
 teststr = "abc\n"
 print "testing popen2..."
 r, w = popen2('cat')
+ print r, w
 w.write(teststr)
 w.close()
 assert r.read() == teststr
 print "testing popen3..."
! try:
! r, w, e = popen3(['cat'])
! except:
! r, w, e = popen3('cat')
! print r, w, e
 w.write(teststr)
 w.close()

AltStyle によって変換されたページ (->オリジナル) /