[解決済み] subprocess.Popen 呼び出しの出力を文字列で保存する [重複] 。
2022-03-14 15:40:57
質問
Pythonでシステムコールを行い、その出力をPythonプログラムで操作できるような文字列に保存しようとしているのです。
#!/usr/bin/python
import subprocess
p2 = subprocess.Popen("ntpq -p")
ここにある提案を含め、いくつかのことを試してみました。
が、うまくいかない。
どうすればいいですか?
Python 2.7 または Python 3 の場合
を作るのではなく
Popen
オブジェクトを直接使用することができます。
subprocess.check_output()
機能
で、コマンドの出力を文字列で保存します。
from subprocess import check_output
out = check_output(["ntpq", "-p"])
Python 2.4-2.6では
を使用します。
communicate
メソッドを使用します。
import subprocess
p = subprocess.Popen(["ntpq", "-p"], stdout=subprocess.PIPE)
out, err = p.communicate()
out
が欲しいところです。
他の回答についての重要な注意事項
コマンドの渡し方に注目してください。その
"ntpq -p"
の例では、もう一つの問題が出てきます。というのも
Popen
はシェルを起動しないので、コマンドとオプションのリストを使います。
["ntpq", "-p"]
.
関連
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] バイトを文字列に変換する
-
[解決済み] 文字列をfloatやintにパースするにはどうしたらいいですか?
-
[解決済み] Pythonで文字列の部分文字列を取得するにはどうすればよいですか?
-
[解決済み] Pythonで文字列を小文字にするには?
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み] なぜlist.join(string)ではなくstring.join(list)なのでしょうか?
-
[解決済み] シェルコマンドの実行と出力のキャプチャ
-
[解決済み】文字列をdatetimeに変換する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
Python入門 openを使ったファイルの読み書きの方法
-
[解決済み】ImportError: sklearn.cross_validation という名前のモジュールがない。
-
[解決済み】TypeErrorを取得しました。エントリを持つ子テーブルの後に親テーブルを追加しようとすると、 __init__() missing 1 required positional argument: 'on_delete'
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み】NameError: 名前 'self' が定義されていません。
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac
-
[解決済み] シェルコマンドの実行と出力のキャプチャ
-
[解決済み】subprocess.call()の出力を取得する【重複あり