EOL for sys.stdin.readline() and raw_input()

jkv jkv at unixcluster.dk
Thu Feb 26 20:06:06 CET 2009

Terry Reedy wrote:
> jkv wrote:
>> Hi,
>> 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 mailing list