читать 140 или менее символов из Python Stdin - PullRequest
0 голосов
/ 16 октября 2011

Мне было интересно, как я мог бы прочитать 140 или меньше символов из строки в python. Либо пользователь введет ровно 140 символов, затем новую строку или менее 140 и новую строку. Похоже, что raw_input() не имеет ограничения, и что sys.stdin.read(140) будет считываться, пока не наберет 140 символов, независимо от новой строки.

РЕДАКТИРОВАТЬ: Как бы я остановил его на 140 символов? Просто тяжело, БОЛЬШЕ НИКАКОГО ВВОДА РАЗРЕШЕНО. Не могу набрать больше.

Идеи

Макс

Ответы [ 2 ]

3 голосов
/ 16 октября 2011

Нравится

ip = sys.stdin.readline()
if len(ip) > 140:
    print "error: over 140 chars"
    sys.exit()
1 голос
/ 16 октября 2011

Обычно stdin буферизуется строкой, что означает, что запущенная программа не информируется о том, что пользователь печатает, пока пользователь не нажмет Enter (это позволяет пользователю использовать команды редактирования строки, такие как backspace, без необходимости выполнения вашей программы). ничего лишнего). Однако возможно переключить терминал в «сырой» режим, так что программа будет информироваться каждый раз, когда пользователь нажимает клавишу. Затем ваша программа может воздействовать на эту клавишу любым удобным для вас способом. В этом случае вам придется самостоятельно выполнять редактирование строк, например backspace.

Один из высокоуровневых способов сделать это - использовать библиотеку curses .

...