質問

ようにしているこのようになっ

Output.py

print "Hello"

Input.py

greeting = raw_input("Give me the greeting. ")
print "The greeting is:", greeting

ではcmd線

Output.py | Input.py

ものを返します メソッドは決してブロック.できる人がいないということは間違いだったのか?

おります。

編集
パトリックハリントン 作品がなぜだかよくわかりません...

役に立ちましたか?

解決

いたしましこの私のWindowsマシンで動作を指定する場合は、Python exe:

C:\>C:\Python25\python.exe output.py | C:\Python25\python.exe input.py
Give me the greeting. The greeting is: hello

かのメソッドは決してブロックの場合に、直接コマンドとして:

output.py | input.py 

なんなのかそれが含まれており、今後とも見ることが少なくともこれを提供する回避策についてそして何かしらのファイルハンドラが呼び出されます。pyファイルです。

更新:もうないんですよね。ようになりますが実際にプログラムにバグウィンドウstdin/標準出力に出力のリダイレクトは正しく動作しない場合があり開始の時ファイルから。その回避策が指摘されているように自分自身やパトリックを指定する必要があります。"python"を走らせることになりinput.pyい場合もありませんのリダイレクトを標準出力に出力からoutput.py のstdin用input.py ます。

参考:

http://mail.python.org/pipermail/python-bugs-list/2004-August/024923.html

http://support.microsoft.com/default.aspx?kbid=321788

更新2:

る挙動を変化させることをWindowsパイプ作業として期待されstdin/標準出力に出力のリダイレクトに追加することができますこの値をレジストリ(動作確認はマイボックス及び検証することが望).

  1. 開始登録ます。
  2. 検索をクリックし、以下のキーのレジストリ:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\政策\Explorer

  3. の編集メニューの追加ボタンをクリックし、その値以下のように追加 レジストリ値:

    Value名前: InheritConsoleHandles
    データタイプ: REG_DWORD
    基数:小数
    値データ1

  4. 終了しレジストリエディター

他のヒント

変更:

Output.py | python Input.py

出力は次のようになります。

  

あいさつをください。挨拶は:こんにちは

EOFErrorを取得する理由は次のとおりです(raw_inputのドキュメントから):

  

この関数は、次から行を読み取ります   入力、文字列に変換します   (末尾の改行を削除)、および   それを返します。 EOFが読み取られると、   EOFErrorが発生します。

http://docs.python.org/library/functions .html?highlight = raw_input#raw_input

sys.stdin を使用することもできます。これは、read、readlinesメソッドを使用できるファイルオブジェクトを提供します。

import sys
for greeting_line in sys.stdin.readlines():
    print "The greeting is:", greeting_line.strip()
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top