KeyBoard interrupt and Redirection operator

Gary Herron gherron at islandtraining.com
Tue Sep 15 21:00:42 CEST 2009


aditya shukla wrote:
> Hello Guys,
>  
> I have a program which i use like this scraps.py arg1 arg2 > filename. 
> I am using the redirection operator to direct the output to the 
> filename .The scenario  here is that I want to print a message as long 
> as the program is running and as generate an error message and exit as 
> I use a keyboard interrupt.I am able to do this by using a try except 
> clause but the issue is that everything is written to the file as i am 
> using the redirection operator .Is there a way to write the running 
> program message and the terminate program mesage to the console 
> without writing it to the file.
>  
>  
>  
> Thanks
>  
> Aditya
>  
>  
>  

There are two output streams usually available to such a program. 

  stdout:   Where print's output goes, and is affected by the redirect 
operator.

  stderr:  Output to this stream is not (normally) affected by the 
redirect operator.

So
  print stuff
or
  print>>sys.stdout, stuff
will go to the redirected file

and
  print>>sys.stderr, stuff
will not be redirected.

That answers you specific question, but note that various shells *do* 
provide (other) ways to redirect both stdout and stderr, but for a 
discussion on that, you will have to tell us what shell, and indeed what 
OS you are using.

Gary Herron




More information about the Python-list mailing list