Programmatic Parsing of ps

bsergean bsergean at
Fri Feb 11 01:26:58 CET 2011

If you're on Linux you should

* Have a look at the /proc/ filesystem, there's probably what you want

Here's a small script that print all the pid/cmd from the process ran
with your user.


import os
import re
import stat
from os.path import join

for pid in (pid for pid in os.listdir('/proc') if re.match('\d',
    cmdline_fn = join('/proc', pid, 'cmdline')
    cmdline = open(cmdline_fn).read()
    uid = os.stat(cmdline_fn)[stat.ST_UID]

    if os.getuid() == uid:
        print pid, cmdline

For a more cross-platform solution there's a module that does that (I
forgot it's name but with some googling you might find it)

On Feb 9, 1:34 pm, Dan Stromberg <drsali... at> wrote:
> On Wed, Feb 9, 2011 at 11:15 AM, Emile van Sebille <em... at> wrote:
> > On 2/9/2011 10:58 AM octopusgrabbus said...
> >> I have Python 2.6.6. I would like to get this output
> >> ps -ef | grep 'fglgo csm'
> >> into a list. What is the best way to do that? I've been reading the
> >> documentation, and am lost.
> >> Thank you.
> >> cmn
> > commands.getoutput
> > Emile
> Also, consider using "ps -eo pid,comm" (or similar) instead of ps -ef
> - it should be easier to parse that way.

More information about the Python-list mailing list