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

Steve Holden steve at holdenweb.com
Sun Jan 31 13:36:55 EST 2010


tinnews at 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.

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/



More information about the Python-list mailing list