實驗:將系統程式對映移到 Python 字典中

kisslfcr發表於2016-08-12
參考官方文件,測試下列程式碼,把oracle的程式對映到python的字典中:

[oracle@ycr python]$ more pro_get.py 
import re
import subprocess


args = ['ps', 'aux']
ps = subprocess.Popen(args, stdout=subprocess.PIPE)
processes = ps.stdout.readlines()
header = re.split('\s+', processes.pop(0))[:-1]
header.remove('COMMAND')


PS = {}
for process in processes:
  columns = re.split('\s+', process)
  if columns[0]!='oracle':
       continue
  PS[int(columns[1])] = {}
  for position, column in enumerate(columns[:9]):
       PS[int(columns[1])][header[position].lower()] = column
       PS[int(columns[1])]['command'] = ' '.join(columns[10:])


from pprint import pprint
pprint(PS)


輸出結果如下:
[oracle@ycr python]$ python pro_get.py 
{2564: {'%cpu': '0.0',
        '%mem': '1.4',
        'command': 'ora_pmon_ycr ',
        'pid': '2564',
        'rss': '27276',
        'start': '04:09',
        'stat': 'Ss',
        'tty': '?',
        'user': 'oracle',
        'vsz': '1089560'},
 2566: {'%cpu': '0.0',
        '%mem': '1.0',
        'command': 'ora_psp0_ycr ',
        'pid': '2566',
        'rss': '20112',
        'start': '04:09',
        'stat': 'Ss',
        'tty': '?',
        'user': 'oracle',
        'vsz': '1089560'},
 2568: {'%cpu': '1.9',
        '%mem': '1.0',
        'command': 'ora_vktm_ycr ',
        'pid': '2568',
        'rss': '19724',
        'start': '04:09',
        'stat': 'Ss',
        'tty': '?',
        'user': 'oracle',
        'vsz': '1089560'},
 2572: {'%cpu': '0.0',
        '%mem': '1.7',
        'command': 'ora_gen0_ycr ',
        'pid': '2572',
        'rss': '34032',
        'start': '04:09',
        'stat': 'Ss',
        'tty': '?',
        'user': 'oracle',
        'vsz': '1091300'},

.................................

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29135257/viewspace-2123401/,如需轉載,請註明出處,否則將追究法律責任。

相關文章