determine if os.system() is done

Steve Horsley steve.horsley at gmail.com
Wed Sep 7 14:43:39 EDT 2005


Xah Lee wrote:
> suppose i'm calling two system processes, one to unzip, and one to
> “tail” to get the last line. How can i determine when the first
> process is done?
> 
> Example:
> 
> subprocess.Popen([r"/sw/bin/gzip","-d","access_log.4.gz"]);
> 
> last_line=subprocess.Popen([r"/usr/bin/tail","-n 1","access_log.4"],
> stdout=subprocess.PIPE).communicate()[0]
> 
> of course, i can try workarounds something like os.system("gzip -d
> thiss.gz && tail thiss"), but i wish to know if there's non-hack way to
> determine when a system process is done.
> 
>  Xah
>  xah at xahlee.org
>http://xahlee.org/
> 

As far as I can tell from the docs (worth reading), 
system(command) doesn't return until the process has completed. 
It would have to do some fancy footwork to return the exit code 
BEFORE the process had completed!

Steve



More information about the Python-list mailing list