コマンドプロンプトでユーザーから入力を取得しようとしています。プログラムは、「cat text.txt|./thescript.py」の方法でテキストファイルからデータを読み込みます。
問題のスクリプトの時点で、すべてのデータはすでに読み込まれ、処理され、リストのリストに入れられています。
今、私は疑わしいアイテムを探しているリストのリストを繰り返しています。コードは基本的に次のようになります。
for invoice in parsedlist:
if invoice[-1] == 3:
sys.stderr.write("triple duplicate at " + invoice[2]+' : ' + invoice[3]+"\n")
sys.stderr.write("continue Y or N \n")
answer = raw_input("Type your answer here")
if answer == 'N':
sys.exit(1)
else:
pass`
このコードはEOFErrorになります。私がすでに理解していることから、この場合、stdinはcatからの読み取りであり、すでにEOFに達しているため、raw_inputがここでEOFを取得するのはなぜですか?(私は思う)目的は、スクリプトに標準エラーに対する警告を出力させ、警告を無視して続行するか完全に終了するかを選択できるようにすることです。最終的に、すべての出力はstd outに送られ、エラーの警告や応答は含まれません。試行/例外を使用する例を見たことがありますが、このコンテキストではそれを理解できませんでした。(例:raw_inputが入力を待たないのはなぜですか?)
私はこの問題を間違った方法で攻撃しているので、歩き回って飛び越えたほうがよい問題を作成しているのではないかと思います。いつものようにどんな助けでもありがたいです。