from subprocess import Popen, PIPE
ifcfg_lines = Popen("/sbin/ifconfig fxp0",shell=True,stdout=PIPE).stdout.readlines()
x = string.split(ifcfg_lines[3])[1]
もう少しエレガントにするには、詳細を非表示にします。
def getBSDIP():
from subprocess import Popen, PIPE
import string
CURRENT = Popen("/sbin/ifconfig fxp0", shell=True,stdout=PIPE).stdout.readlines()
return(string.split(CURRENT[3])[1])
これを行うためにサブプロセスを使用する場合、基本的にスクリーンスクレイピングのようなことを行うため、エレガンスは少し制限されますが、ここではスクリプトスクレイピングを行っています。本当に一般的な解決策が必要な場合は、ソケット ライブラリを使用します。つまり、Python に移植性を処理させます。
多くの場合、コードを少し見て、それを行うためのよりクリーンな方法があればいいのにと思うとき、これは、自分の仮定に疑問を投げかけ、ソリューションのアルゴリズムまたはアーキテクチャを変更する必要があることを意味します。