Beginner asks question about Python on Linux

Tim Evans tre17 at student.canterbury.ac.nz
Sat Oct 9 19:00:14 EDT 1999


"Adrian Eyre" <a.eyre at optichrome.com> writes:
> > os.system("ps aux|grep someProcess > pids.temp")
>> Try:
> f = os.popen("ps aux|grep " + someProcessStr)
> l = f.readlines()
> f.close()
>> --------------------------------------------
> Adrian Eyre <mailto:a.eyre at optichrome.com>
> Optichrome Computer Solutions Ltd
> Maybury Road, Woking, Surrey, GU21 5HX, UK
> Tel: +44 1483 740 233 Fax: +44 1483 760 644
> http://www.optichrome.com 
> --------------------------------------------

The pipe to grep is slightly unnecessary, you could just use python to 
filter the lines. Try this:
=============== ps.py ===============
#!/usr/bin/python
import os
import string
def pids(program):
 '''Return a list of process ids for all processes that are running
 "program". Relies on a particular output format for ps a little
 too much.'''
 result = []
 f = os.popen('ps aux', 'r')
 for l in f.readlines():
 fields = string.split(l)
 if fields[10] == program:
 result.append(int(fields[1]))
 return result
if __name__ == '__main__':
 print pids('gnome-terminal')
==============================
$ ./ps.py
[18910, 18925]
--
Tim Evans


More information about the Python-list mailing list

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