2011-10-18 2 views
1

붙여 넣은 텍스트 블록 (여러 줄 바꿈/캐리지 리턴 포함)이 될 사용자 입력을 받아들이는 프로그램을 작성하려고합니다. 파이썬이 어떻게 처리 할 수 ​​있는지에 대한 정보를 찾는데 어려움이 있습니다. 정상적인 동작은 입력 명령이 첫 번째 \ n에 마자 마자 완료하는 것입니다.파이썬 입력 핸들 인라인 n 가능합니까?

+1

이것은 명령 줄 앱입니까? 웹상에서 뭔가? 어떻게 정보를 수집하고 있습니까? –

답변

4

처음 질문을 보았을 때 "input command"를 "input() function"이 아닌 "command being input"으로 읽었습니다. 지금 여기서 명령 줄에서 데이터를 수집한다고 가정합니다.

개행 문자로 입력을받는 문제는 다음과 같습니다. 입력을 언제 중단합니까? 다음 예는 사용자가 ctrl-d을 누르기를 기다리면서이 문제를 해결합니다. 이 경우 raw_input() 함수에서 예외가 트리거 된 후 while 루프에서 나옵니다. 분명히

text = '' 

# keep looping forever 
while True: 
    try: 
     # grab the data from the user, and add back the newline 
     # which raw_input() strips off 
     text += raw_input() + "\n" 
    except EOFError: 
     # if you encounter EOF (which ctrl-d causes) break out of the loop 
     break 

# print the text you've gathered after a dashed line 
print "\n------------\n" + text 

당신은 그들이 조금 어색 할 수있는 문자 입력을 중지 CTRL-D를를 사용해야합니다 것을 사용자에게 경고 할 것입니다 -하지만 그들은 명령 프롬프트에 이미 있다면 그렇게 나쁘지 않아야합니다.

또한 여기서는 raw_input()을 사용했지만 입력을 수집하지만 exec()input()으로 표시되지 않습니다. 당신이 결과를 실행하기 위해 찾고 있다면, 당신은 단지와 print() 전화를 대체 할 수 :

exec(text) 

비슷한 결과를 가지고.

+0

Windows 사용자 인 경우 EOF는 'Ctrl-Z'다음에 'Enter'가 표시되어 발생한다고 생각합니다. – detly