As from Python 2.6, os.popen and friends are deprecated methods and you should use the subprocess module for subprocesses. So that's the way to go if you want to run operating system commands. New example showing this -
[here]
Starting with:
from subprocess import *
I can run a process and allow its output to to stdout via the
call utility:
stuff0 = call("ls")
I can run a process and capture its output to a variable (2 examples):
stuff1 = Popen(["ls"], stdout=PIPE).communicate()[0]
stuff2 = Popen(["ls","-l"], stdout=PIPE).communicate()[0]
And I can open a process that I can then read back from it (2 more examples):
pingalong = Popen("ping -q -c2 192.168.200.134", shell=True, stdout=PIPE).stdout
pingalot = Popen(["ping","-q","-c2","192.168.200.115"], stdout=PIPE).stdout
Note the use of
shell=True to push the incoming command through the shell, rather than have to split up the command and parameters yourself.
(written 2010-05-14, updated 2010-05-15)
Associated topics are indexed under
Y115 - Additional Python Facilities [4085] JSON from Python - first principles, easy example - (2013-05-13)
[3469] Teaching dilemma - old tricks and techniques, or recent enhancements? - (2011-10-08)
[3442] A demonstration of how many Python facilities work together - (2011-09-16)
[3089] Python regular expressions - repeating, splitting, lookahead and lookbehind - (2010-12-17)
[2790] Joining a MySQL table from within a Python program - (2010-06-02)
[2786] Factory methods and SqLite in use in a Python teaching example - (2010-05-29)
[2764] Python decorators - your own, staticmethod and classmethod - (2010-05-14)
[2746] Model - View - Controller demo, Sqlite - Python 3 - Qt4 - (2010-04-29)
[2745] Connecting Python to sqlite and MySQL databases - (2010-04-28)
[2721] Regular Expressions in Python - (2010-04-14)
[2655] Python - what is going on around me? - (2010-02-28)
[2462] Python - how it saves on compile time - (2009-10-20)
[2435] Serialization - storing and reloading objects - (2009-10-04)
[2407] Testing code in Python - doctest, unittest and others - (2009-09-16)
[1876] Python Regular Expressions - (2008-11-08)
[1337] A series of tyre damages - (2007-09-08)
[1336] Ignore case in Regular Expression - (2007-09-08)
[1305] Regular expressions made easy - building from components - (2007-08-16)
[1149] Turning objects into something you can store - Pickling (Python) - (2007-04-15)
[1136] Buffering output - why it is done and issues raised in Tcl, Perl, Python and PHP - (2007-04-06)
[1043] Sending an email from Python - (2007-01-18)
[901] Python - listing out the contents of all variables - (2006-10-21)
[753] Python 3000 - the next generation - (2006-06-09)
[672] Keeping your regular expressions simple - (2006-04-05)
[663] Python to MySQL - (2006-03-31)
[463] Splitting the difference - (2005-10-13)
[239] What and why for the epoch - (2005-03-08)
[208] Examples - Gadfly, NI Number, and Tcl to C interface - (2005-02-10)
[183] The elegance of Python - (2005-01-19)
Y303 - Python Network Programming [4087] Python network programming - new FTP and socket level examples - (2013-05-14)
[2695] TCP v UDP / Client v Server - Python examples - (2010-03-25)
[2694] Multiple processes (forking) in Python - (2010-03-25)
[2368] Python - fresh examples of all the fundamentals - (2009-08-20)
[2365] Counting Words in Python via the web - (2009-08-18)
Y108 - Python - String Handling [4027] Collections in Python - list tuple dict and string. - (2013-03-04)
[3886] Formatting output - why we need to, and first Python example - (2012-10-09)
[3796] Backquote, backtic, str and repr in Python - conversion object to string - (2012-07-05)
[3468] Python string formatting - the move from % to str.format - (2011-10-08)
[3349] Formatting output in Python through str.format - (2011-07-07)
[3218] Matching a license plate or product code - Regular Expressions - (2011-03-28)
[3090] Matching to a string - what if it matches in many possible ways? - (2010-12-17)
[2814] Python - splitting and joining strings - (2010-06-16)
[2780] Formatted Printing in Python - (2010-05-25)
[2692] Flexible search and replace in Python - (2010-03-25)
[2406] Pound Sign in Python Program - (2009-09-15)
[2284] Strings as collections in Python - (2009-07-12)
[1608] Underlining in Perl and Python - the x and * operator in use - (2008-04-12)
[1517] Python - formatting objects - (2008-01-24)
[1195] Regular Express Primer - (2007-05-20)
[1110] Python - two different splits - (2007-03-15)
[970] String duplication - x in Perl, * in Python and Ruby - (2006-12-07)
[954] Splitting Pythons in Bradford - (2006-11-29)
[943] Matching within multiline strings, and ignoring case in regular expressions - (2006-11-25)
[903] Pieces of Python - (2006-10-23)
[773] Breaking bread - (2006-06-22)
[560] The fencepost problem - (2006-01-10)
[496] Python printf - (2005-11-15)
[324] The backtick operator in Python and Perl - (2005-05-25)
5a27
Some other Articles
Easy - but for whom?Carrying a long URL around - looking for memorable shortsBack from a Python course in GlasgowOptional and named parameters to Python functions/methodsRunning operating system commands from your Python programOur C and C++ training course are on Open Source platformsWell House - Mission and Policy summariesA small business, facing a big government questionnaireViews of Scotland