0

python for loop などの簡単な方法を使用して、出力から解析httpd_したいと考えています。chkconfig

[spatel@04 ~]$ /sbin/chkconfig --list| grep httpd_
httpd_A    0:off   1:off   2:on    3:on    4:on    5:on    6:off
httpd_B      0:off   1:off   2:off   3:on    4:on    5:on    6:off
httpd_C      0:off   1:off   2:on    3:on    4:on    5:on    6:off

で行う方法は知っていますが、でbash同じことをしたいですpython

[spatel@04 ~]$ for qw in `/sbin/chkconfig --list| grep httpd_ | awk '{print $1}'`
> do
> echo $qw
> done
httpd_A
httpd_B
httpd_C

Pythonでそれを行う方法は?私のpythonのバージョンは

[root@04 ~]# python -V
Python 2.4.3
4

1 に答える 1

3

を使用して空白で行を分割し、次を使用.split()して最初の要素が文字列で始まるかどうかをテストします.startswith()

import subprocess

output = subprocess.check_output(['chkconfig', '--list'])

for line in output.splitlines():
    if line.startswith('httpd_'):
        print line.split()[0]

古いバージョンの Python の場合は、Popen()直接呼び出しを使用します。

output = subprocess.Popen(['chkconfig', '--list'], stdout=subprocess.PIPE).stdout

for line in output:
    if line.startswith('httpd_'):
        print line.split()[0]
于 2013-03-06T15:31:04.343 に答える