This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: subprocess (Replacing popen) - add a warning / hint
Type: enhancement Stage: resolved
Components: Documentation Versions: Python 3.0, Python 3.1, Python 2.7, Python 2.6
process
Status: closed Resolution: accepted
Dependencies: Superseder:
Assigned To: r.david.murray Nosy List: HWJ, georg.brandl, r.david.murray
Priority: normal Keywords: easy, patch

Created on 2008-05-22 15:17 by HWJ, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
issue2947-doc.patch r.david.murray, 2009-06-07 16:47
Messages (4)
msg67195 - (view) Author: Helmut Jarausch (HWJ) Date: 2008-05-22 15:17
Background:
I (as many others, too) have used the following code in the past

ARC='MyDumpFile'
tar_inp= os.popen('/bin/tar cjf '+ARC+' -T -','w')
....
tar_exit_code= tar_inp.close()
if  tar_exit_code != None and tar_exit_code % 256 :
  print "some error messages"

When replacing this - as suggested - by

TAR= Popen(('/bin/tar','cjf',ARC,'-T','-'),stdin=PIPE)
tar_inp= TAR.stdin
....
tar_inp.close() always returns None which was an indication
of NO ERROR when used together with popen.

So this has proabaly to be replaced by

tar_inp.close()
tar_exit_code= TAR.wait()

if  tar_exit_code != 0 :
  print "some error messages"


I suggest a warning / hint to change checking for errors
when upgrading to subprocess.Popen
msg89047 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2009-06-07 16:47
Patch attached that adds an example that shows how to translate return
code handling, loosely based on Helmut's example.  I also turned the
function references in the section titles into links because I think
that would be very useful to someone wanting to do a translation
(provides easy access to the docs for the old functions).  The font size
looks a bit weird in the generated docs, though, so perhaps that is why
this wasn't done originally.  If putting references in section titles is
a no-no let me know and I'll remove them from the patch.

Also included in the patch is a fix for the cross reference link from
the os.spawn section to the 'replacing functions' section of the
subprocess docs.
msg89068 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2009-06-08 07:53
Patch looks good, except for strange code indentation in the replaced
example.
msg89131 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2009-06-09 00:47
Applied (with spacing fix) in r73313.
History
Date User Action Args
2022-04-11 14:56:34adminsetgithub: 47196
2009-06-09 00:47:38r.david.murraysetstatus: open -> closed
resolution: accepted
messages: + msg89131

stage: patch review -> resolved
2009-06-08 07:53:03georg.brandlsetassignee: georg.brandl -> r.david.murray
messages: + msg89068
2009-06-07 16:47:18r.david.murraysetfiles: + issue2947-doc.patch
priority: normal
type: enhancement

versions: + Python 3.0, Python 3.1, Python 2.7
keywords: + patch, easy
nosy: + r.david.murray

messages: + msg89047
stage: patch review
2008-05-22 15:17:55HWJcreate