On Thu, Jun 11, 2009 at 3:08 AM, Alun Griffiths < alun.griffi...@dsl.pipex.com> wrote:
> Hi > > I have a legacy (FORTRAN) program called POLY.EXE which asks the user > interactively for three inputs (file names) from the keyboard. I would like > to run this program in batch and tried to replace the interactive prompts > with file names stored in a separate file using this Python script: > > import subprocess > > try: > poly_file = file("poly_files.txt","r") > except: > print "Could not open input file" > else: > x = subprocess.Popen(args="poly.exe", stdin=poly_file) > x.wait() > > poly_files.txt contains the three file names as follows: > > polyin.dat > polyout.dat > polyout.plt > > On execution, I get these error messages > Traceback (most recent call last): > File "C:/Projects/Active/Alun/test_poly.py", line 4, in -toplevel- > x = subprocess.Popen(args="poly.exe", stdin=poly_file) > File "C:\Python24\lib\subprocess.py", line 533, in __init__ > (p2cread, p2cwrite, > File "C:\Python24\lib\subprocess.py", line 607, in _get_handles > c2pwrite = self._make_inheritable(c2pwrite) > File "C:\Python24\lib\subprocess.py", line 634, in _make_inheritable > DUPLICATE_SAME_ACCESS) > WindowsError: [Errno 6] The handle is invalid > > So, it looks like something is wrong with the way I am redirecting stdin, > but I have no idea what the problem is. Any suggestions gratefully received > I've not done much with subprocess, but I know you can use the subprocess.PIPE to redirect stdin/stdout. This may be of some help too, http://www.oreillynet.com/onlamp/blog/2007/08/pymotw_subprocess_1.html -Wayne
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor