Reading from stdin (in windows)
Rob Williscroft
rtw at freenet.co.uk
Tue Oct 14 07:43:01 EDT 2008
durumdara at gmail.com wrote in news:mailman.2448.1223974725.3487.python-
list at python.org in comp.lang.python:
> Hi!
>
> I wanna write a file processor in python (Windows XP).
> I wanna use pipe, and not parameters.
>
> When I write this:
>
> ...
> l = []
> while 1:
> t = sys.stdin.read(1)
> if t == '':
> break
> l.append(t)
>
> t = "".join(l)
> ...
>
> and use code this:
> process.py <test.txt
>
> I got:
> "Bad file descriptor"
>
> What I do wrong? I need to call this module in another format?
> Or I read in wrong way?
>
The problem appear to be that MS-Windows doesn't make pipe's for
programs it opens via its file type association mechanism.
Essentially MS-Windows is treating the .py file as a document and
using python to "open" the document.
Try running you program as:
python process.py <test.txt
Note for this to work python will have to be on your path. If
it isn't use the full path to you copy of python. for e.g.:
c:\python25\python.exe process.py <test.txt
Rob.
--
http://www.victim-prime.dsl.pipex.com/
More information about the Python-list
mailing list