EOL for sys.stdin.readline() and raw_input()
jkv at unixcluster.dk
Thu Feb 26 20:06:06 CET 2009
Terry Reedy wrote:
> jkv wrote:
>> Are there any way to change the EOL character for
>> sys.stdin.readline() and raw_input()?
>> My problem is that i cannot rely on that the clients connection to my
>> application will end all lines with \n or \r\n. Sometimes they will
>> use \r\000 as EOL.
>> Example from my code:
>> sys.stdout.write('Password: ');
>> #IAC DO ECHO sys.stdout.write('\xFF\xFB\x01')
>> password = raw_input()
>> If the client sends 'qwerty\r\n' everything is fine and the password
>> get stored in the variable. But sometimes, depending on how broken
>> the telnet client are, the client will send 'qwerty\r\000' instead
>> and then my application will hang at 'password = raw_input()' forever.
> Can you put that in a separate thread with timeout?
I guess i could - wouldn't know how thou, just getting started in python.
Is there any way i can read stdin character by character? In C i would
loop over 'ch = getch();' and in each iteration push the character to
the password variable unless ch equals to \r.
Anyway to do something like this in python?
More information about the Python-list