sys.stdin.read question

Caleb Hattingh caleb1 at telkomsa.net
Tue Dec 7 23:45:17 EST 2004


It runs properly in a shell (bash), but on another matter:

'>>> r=sys.stdin.read(1)
g
'>>> r
'g'
'>>> r=sys.stdin.read(5)
1234567890
'>>> r
'\n1234'
'>>>

What exactly happened to my 1234567890?  I understand that I am only  
taking 5 characters, but where does the newline (\n) come from?  Is that a  
remnant from when I terminated the previous 'g' input?

Thanks
Caleb


On Tue, 07 Dec 2004 23:36:56 -0500, Caleb Hattingh <caleb1 at telkomsa.net>  
wrote:

> Hi
>
> You are probably typing this within IDLE.  Try it after starting python  
> in a shell like DOS or Bash.  Should work then (works for me, and I also  
> get the AttributeError in IDLE.
>
> Thanks
> Caleb
>
> On Tue, 07 Dec 2004 21:15:51 GMT, It's me <itsme at yahoo.com> wrote:
>
>> Why do I get an "AttributeError: read" message when I do:
>>
>>     import sys
>>     r=sys.stdin.read()
>>
>> ??
>>
>> I've tried:
>>
>>     r=sys.stdin.read(80)
>>     r=sys.stdin.read(1)
>>
>> same error message.
>>
>> I couldn't find any reference to this function in my Python book (they  
>> have
>> the stdout but not in).
>>
>> Some sample code I saw uses this function in the same manner I am and  
>> so I
>> am assuming this is the correct syntax?
>>
>> Or is this a bug in Python 2.4?
>>
>> --
>> It's me
>>
>>
>




More information about the Python-list mailing list