原因はパスが通っていないこと?
コメントいただいた方の指摘でパスの実験をしてみる。
こんどは、OS X 環境。
$ python
Python 2.3 (#1, Sep 13 2003, 00:49:11)
[GCC 3.3 20030304 (Apple Computer, Inc. build 1495)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import os, string, cgi
>>> f = os.popen('ifconfig en0')
>>> o = ''
>>> for line in f:
... o += line
...
>>> f.close()
>>> o = string.split(o)
>>> print o[0]
en0:
パスを空にしてから試験。
$ PATH= /usr/bin/python
>>> import os, string, cgi
>>> f = os.popen('ifconfig en0')
>>> sh: line 1: ifconfig: No such file or directory>>> o = ''
>>> for line in f:
... o += line
...
>>> f.close()
32512
>>> o = string.split(o)
>>> print o[0]
Traceback (most recent call last):
File "", line 1, in ?
IndexError: list index out of range
おっしゃる通りでした(^^;。どうもありがとうございました。
エラーは popen の戻り値に入らないってことなのね。
# コマンドパスはフルで書けってのはシェルスクリプトでも鉄則でしたね.. orz
一応、フルパスにして確認。
$ PATH= /usr/bin/python
>>> import os, string, cgi
>>> f = os.popen('/sbin/ifconfig en0')
>>> o = ''
>>> for line in f:
... o += line
...
>>> f.close()
>>> o = string.split(o)
>>> print o[0]
en0:
なんともマヌケで恥ずかしいネタでした...