1

scutilコマンドからの情報が必要です。scutil -d -r xyz.comターミナルで実行すると。数行の出力が表示されます。しかし、私が行うscutil -d -r xyz.com > file.txtと、コマンド出力の最後の行だけflags = 0x00000002 (Reachable)がファイルに表示されます。

このコマンドを python から実行していますが、このコマンドの内容全体が必要です。私がpythonで実行している方法は次のとおりです。

import os

output = os.popen('scutil -r -d yahoo.com').read()
print output

この出力は次のとおりです。

フラグ = 0x00000002 (到達可能)

しかし、ここでもコマンドのすべての出力が必要です。この問題の回避策があれば教えてください。

4

3 に答える 3

0

os.popen は 2.6 以降非推奨ですドキュメントは、モジュールを使用し
た置き換えに関する入門書を提供します: http://docs.python.org/library/subprocess.html#replaceing-os-popen-os-popen2-os-popen3os.popensubprocess

コードに適用される例:

import subprocess
my_process = subprocess.Popen('scutil -r -d yahoo.com', 
                              shell=True,
                              stdout=subprocess.PIPE, 
                              stderr=subprocess.PIPE)
out, err = my_process.communicate()
print out
print err
于 2012-06-14T21:10:24.163 に答える
0

scutil代わりにstderr使用してみる情報を印刷します&> file.txt> file.txt

Pythonで次を使用してみてください:

import commands 
print commands.getstatusoutput("scutil -d -r xyz.com")
于 2012-06-14T20:53:06.497 に答える
0

あなたはおそらく使用することができますsubprocess.check_output("scutil -d -r xyz.com", stderr=subprocess.STDOUT, shell=True)

import subprocess

output = subprocess.check_output("scutil -d -r xyz.com", stderr=subprocess.STDOUT, shell=True)
print(output)

このコマンドでは、次の 2 つの点にcheck_output注意する必要があります。

  1. stderr=subprocess.STDOUTエラー出力ストリームを標準出力にパイプします
  2. shell=Trueシェルを介してコマンドを実行します。これにより、シェル プロセスが実行されているのと同じ環境にアクセスできます。
于 2012-06-15T05:23:16.750 に答える