[解決済み】subprocess.call()の出力を取得する【重複あり
2022-03-29 20:08:15
質問
を使用して実行したプロセスの出力を取得するには、どうすればよいですか?
subprocess.call()
?
を渡すと
StringIO.StringIO
オブジェクトを
stdout
を実行すると、このようなエラーが発生します。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py", line 444, in call
return Popen(*popenargs, **kwargs).wait()
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py", line 588, in __init__
errread, errwrite) = self._get_handles(stdin, stdout, stderr)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py", line 945, in _get_handles
c2pwrite = stdout.fileno()
AttributeError: StringIO instance has no attribute 'fileno'
>>>
解決方法は?
からの出力
subprocess.call()
はファイルにのみリダイレクトされるべきです。
を使用する必要があります。
subprocess.Popen()
の代わりに そうすると
subprocess.PIPE
を使い、パイプから読み込むことができます。
communicate()
メソッドを使用します。
from subprocess import Popen, PIPE
p = Popen(['program', 'arg1'], stdin=PIPE, stdout=PIPE, stderr=PIPE)
output, err = p.communicate(b"input data that is passed to subprocess' stdin")
rc = p.returncode
で使用されるファイルのようなオブジェクトが、その理由です。
subprocess.call()
は実際のファイルディスクリプタを持つ必要があり、そのために
fileno()
メソッドを使用します。ファイルのようなオブジェクトを使用するだけでは、うまくいきません。
参照 ここで をご覧ください。
関連
-
Pythonコンテナのための組み込み汎用関数操作
-
python implement mysql add delete check change サンプルコード
-
Python Pillow Image.save jpg画像圧縮問題
-
PythonでECDSAを実装する方法 知っていますか?
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み】ValueError: pickleプロトコルがサポートされていません。3、python2 pickleはpython3 pickleでダンプしたファイルを読み込むことができない?
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] シェルコマンドの実行と出力のキャプチャ
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
Python Decorator 練習問題
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
Pythonショートビデオクローラーチュートリアル
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み】Python: OverflowError: 数学の範囲エラー
-
[解決済み] subprocess.Popen 呼び出しの出力を文字列で保存する [重複] 。