2011-10-15 3 views
0

나는 파이썬에서 한 줄의 140 자 이하를 읽는 방법을 궁금해했다. 사용자는 정확히 140자를 입력 한 다음 줄 바꿈을 입력하거나 140 줄 이하의 줄 바꿈을 입력합니다. raw_input()에는 제한이 없으며 sys.stdin.read(140)은 개행에 관계없이 140 문자까지 읽습니다.python stdin에서 140 이하의 문자를 읽음

EDIT : 140자를 어떻게 멈 춥니 까? 단단한 입력이 허용되지 않습니다. 더 입력 할 수 없습니다.

아이디어가 있으십니까?

최대

+0

사용자가 개행 전에 140 자 이상을 입력하면 어떻게해야합니까? –

+0

인쇄 오류 : 140 자 이상 % d "% (140-len (a))'a는 입력입니다 – tekknolagi

+2

오류 메시지를 생성하려면 전체 줄을 읽어야합니다. –

답변

1

보통처럼, 표준 입력은 프로그램 실행은 사용자가 Enter 키를 누를 때까지 사용자가 입력됩니다 무엇에 대한 정보되지 않음을 의미하는 라인 버퍼입니다 (이것은 사용자를 할 수 있습니다 백 스페이스와 같은 라인 편집 명령을 사용하십시오. 그러나 터미널을 "원시"모드로 변경할 수 있으므로 사용자가 키를 누를 때마다 프로그램에 알려줍니다. 그런 다음 프로그램은 해당 키 누르기가 적절한 방식으로 작동 할 수 있습니다. 이 경우 백 스페이스와 같은 라인 편집을 구현해야합니다.

높은 수준의 방법 중 하나는 curses 라이브러리를 사용하는 것입니다.

+0

그래서'curses.filter()'? 아이디어? – tekknolagi

+0

편집을 참조하십시오? – tekknolagi

+0

어떻게'curses.raw()'와'curses.cbreak()'를 사용하면 좋을까요? – tekknolagi

3

ip = sys.stdin.readline() 
if len(ip) > 140: 
    print "error: over 140 chars" 
    sys.exit() 
+0

제외하고 나는 자르지 않을 것입니다 : -/ – tekknolagi

+0

오, 흥미 롭습니다. 감사! – tekknolagi

+0

except : 편집을 참조하십시오 – tekknolagi