Skip to content Skip to sidebar Skip to footer

How Can I Check To See If A Python Script Was Started Interactively?

I'd like for a script of mine to have 2 behaviours, one when started as a scheduled task, and another if started manually. How could I test for interactiveness? EDIT: this could ei

Solution 1:

You should simply add a command-line switch in the scheduled task, and check for it in your script, modifying the behavior as appropriate. Explicit is better than implicit.

One benefit to this design: you'll be able to test both behaviors, regardless of how you actually invoked the script.

Solution 2:

If you want to know if you're reading from a terminal (not clear if that is enough of a distinction, please clarify) you can use

sys.stdin.isatty()

Solution 3:

I'd just add a command line switch when you're calling it with cron:

python yourscript.py -scheduled

then in your program

import sys

if"-scheduled"in sys.argv:
    #--non-interactive code--else: 
    #--interactive code--

Post a Comment for "How Can I Check To See If A Python Script Was Started Interactively?"