私は、コマンドラインまたは標準入力からの入力を取ることができ、簡単なラインカウンタを含め、今Pythonでいくつかの演習を通じて実行しています:標準入力[Pythonの]
#### line_count1.py ####
import sys
def count_lines(file):
n = 0
for line in file:
n = n + 1
return n
if len(sys.argv) == 1:
print("Needs stdin")
file = sys.stdin
else:
print("File given at command line")
file = open(sys.argv[1])
print (count_lines(file))
私が入力した場合すなわちのpython line_count1.py file_with_4_lines.txtコマンドラインでファイル、それは素晴らしい作品、と私は出力を得る:
File given at command line
4
しかし、それはPythonのline_count1経由で標準入力を必要としないように、私はそれを入力すると、 .py、私は次の出力を得る:
Needs stdin
_
しかし、実際には私のstdinのエントリでは何もしません。私はfile_with_4_lines.txtと入力することができますが、タスクマネージャーでコードを強制終了するまで、決してそれを取り出して別の標準入力を待つことはありません。
これは何が起こる原因ですか?私の理解から、私がstdinのために何かを入力するとすぐに、残りのコードを実行する必要があります。しかし、そうではありません。私は何が欠けていますか?
あなたはそれが 'の内容を読み取るために期待しています'file_with_4_lines.txt'を' stdin'の場合 'file_with_4_lines.txt'と入力するとファイルがありますか?これは 'stdin'の仕組みではありません... – ShadowRanger
ファイル変数をstdinと同じにしてcount_lines(file)で使用します。 – Chase