명령 프롬프트에서 사용자 입력을 얻으려고합니다. 프로그램은 "cat text.txt | ./thescript.py"의 방식으로 텍스트 파일에서 데이터를 읽습니다.raw_input()의 Python EOF 오류
해당 스크립트 시점에서 모든 데이터가 이미 읽혀지고 처리되고 저장됩니다 목록으로
이제 의심스러운 항목을 찾는 목록 목록을 반복합니다. 코드는 기본적으로 다음과 같습니다.
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은이 경우 고양이로부터의 읽기이며, 이미 EOF에 도달했기 때문에 raw_input이 EOF를 얻는 이유는 무엇입니까? (나는 생각한다) 스크립트가 표준 오류에 대한 경고를 출력하고 경고를 무시하고 계속 또는 완전히 종료할지 여부를 선택하도록하는 것이 목표입니다. 결국 모든 출력은 표준 출력으로 넘어 가고 오류 경고 또는 응답은 포함되지 않습니다. try/exception을 사용하는 예제를 보았지만이 컨텍스트에서이 예제를 이해하지 못했습니다. 예를 들어, raw_input이 입력을 기다리지 않는 이유는 무엇입니까?
저는이 문제를 잘못된 방식으로 공격하여 더 잘 걸려 넘어 질 수있는 문제를 일으킬 수 있다고 생각합니다. 어떤 도움도 언제나처럼 평가됩니다.
들여 쓰기가 좋지 않습니다. 그들은 원래 존재했습니다. – Wyatt
'cat text.txt | ./thescript.py'는 일반적으로 ./thescript.py
그가 왼편을 단순화시키지 않으면 우리가 당면한 문제에서 우리를 혼란스럽게하지 않는다 ...;) –