Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Can't get sys.stdin.readlines() to work

28 views
Skip to first unread message

tin...@isbd.co.uk

unread,
Jan 31, 2010, 1:15:32 PM1/31/10
to
I'm trying to read some data from standard input, what I'm actually
trying to do is process some date pasted in using the mouse cut and
paste on a Linux box (xubuntu 9.10) in a terminal window.

First attempts failed so I'm now trying the trivial:-

import sys
data = sys.stdin.readlines()
print "Counted", len(data), "lines."


When I run this and try to paste something into the terminal window I
get the following errors:-

/home/chris/bin/m2r.py: line 2: syntax error near unexpected token `('
/home/chris/bin/m2r.py: line 2: `data = sys.stdin.readlines()'


It does exactly the same if I try:-

cat | m2r.py

and then paste something into the window.


So - what on earth am I doing wrong?


--
Chris Green

Richard Thomas

unread,
Jan 31, 2010, 1:26:26 PM1/31/10
to

You haven't put a shebang line at the top.

#!/usr/bin/env python


import sys
data = sys.stdin.readlines()

...

Steve Holden

unread,
Jan 31, 2010, 1:36:55 PM1/31/10
to tin...@isbd.co.uk, pytho...@python.org
Trying to run Python scripts with /bin/sh, probably.

First of all, does you PATH include the current directory (.)? It looks
like it does, because your computer seems to be trying to execute the
m2r.py script. However, because that script does not start with a
"shebang" line - the one you need is probably either

#!/usr/bin/python

or

#!/usr/bin/env python

the shell is trying to run the script using the wrong interpreter.

regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
PyCon is coming! Atlanta, Feb 2010 http://us.pycon.org/
Holden Web LLC http://www.holdenweb.com/
UPCOMING EVENTS: http://holdenweb.eventbrite.com/

Steve Holden

unread,
Jan 31, 2010, 1:36:55 PM1/31/10
to pytho...@python.org, pytho...@python.org

Grant Edwards

unread,
Jan 31, 2010, 1:50:56 PM1/31/10
to
On 2010-01-31, Steve Holden <st...@holdenweb.com> wrote:
> tin...@isbd.co.uk wrote:
>> I'm trying to read some data from standard input, what I'm actually
>> trying to do is process some date pasted in using the mouse cut and
>> paste on a Linux box (xubuntu 9.10) in a terminal window.
>>
>> First attempts failed so I'm now trying the trivial:-
>>
>> import sys
>> data = sys.stdin.readlines()
>> print "Counted", len(data), "lines."
>>
>>
>> When I run this and try to paste something into the terminal window I
>> get the following errors:-
>>
>> /home/chris/bin/m2r.py: line 2: syntax error near unexpected token `('
>> /home/chris/bin/m2r.py: line 2: `data = sys.stdin.readlines()'
>>
>>
>> It does exactly the same if I try:-
>>
>> cat | m2r.py
>>
>> and then paste something into the window.
>>
>>
>> So - what on earth am I doing wrong?
>>
>>
> Trying to run Python scripts with /bin/sh, probably.

Yup. I can't count the number of times I've run ImageMagick's
"import" program unintentionally...

--
Grant Edwards grante Yow! The SAME WAVE keeps
at coming in and COLLAPSING
visi.com like a rayon MUU-MUU ...

tin...@isbd.co.uk

unread,
Jan 31, 2010, 5:24:13 PM1/31/10
to

Urk!!! Silly me. That catches me out every few months! :-)

--
Chris Green

0 new messages