2016-03-27 11 views
2

現在、モジュールsubprocessの使用方法を学習しています。即座に、私は理解していないエラーメッセージを受け取りました。 「システムは指定されたファイルを見つけることができません」 :FileNotFoundError:[WinError 2]システムエラーが発生しました。見つかった日付

Traceback (most recent call last): 
    File "D:/me/Python/subprocess.py", line 3, in <module> 
    proc = subprocess.Popen(['echo', 'Hello there'], stdout=subprocess.PIPE) 
    File "C:\Python34\lib\subprocess.py", line 859, in __init__ 
    restore_signals, start_new_session) 
    File "C:\Python34\lib\subprocess.py", line 1112, in _execute_child 
    startupinfo) 
FileNotFoundError: [WinError 2] Das System kann die angegebene Datei nicht finden 

ドイツ語で「ダス・システムカンはangegebene Datei NICHTのfindenが死にます」。私は自分自身をドイツ語ですので、私はドイツのエラーhanlingとのトラブルを抱えていないんだけど、私はここに何が間違っているを把握しませんでした:こんにちは、彼らはこのコードは」印刷するべきであると述べた本では

import subprocess 

proc = subprocess.Popen(['echo', 'Hello there'], stdout=subprocess.PIPE) 
out, err = proc.communicate() 
print(out.decode('utf-8')) 

をスクリーン上にあるが、なんらかの理由で、それはしない。

ここで何が間違っていますか?私は現在、Python 3.4.3を使用しています。

答えて

3

echoは実行可能なプログラムではありませんが、Windowsのコマンドラインインタプリタcmd.exeで利用可能なシェルコマンドです。

シェルコマンドを実行するためには、あなたがPopenshell=Trueを渡す必要があります:

proc = subprocess.Popen(['echo', 'Hello there'], stdout=subprocess.PIPE, shell=True) 
#                  ^^^^^^^^^^ 
+0

うまく働いたので、ありがとうございました! :-D –

関連する問題