Question about 'if __name__ == "__main__":'
Bill Anderson
banderson at hp.com
Tue Feb 3 03:15:40 EST 2004
On Mon, 02 Feb 2004 23:33:42 -0800, Amy G wrote:
> I have a program that needs a little help.
> Right now the program runs in my crontab. When it runs, it sets a few
> variables based on a query to a MySQL database. I would like to modify it
> so that it can run as it is... or if arguments are supplied, use those
> instead of querrying the database.
>
> Will using this statement help me out?
>
> if __name__ == "__main__":
>
> I seem to recall that this returns true if it is run as a script by python,
> rather than as a module from another prog. Since I am going to run this
> from a command line - or from my crontab... it will always return true as
> far as I can tell.
This allows you to set up your script to act differently when imported vs.
ran. For return code, you can put in things like "sys.exit(returnvalue)"
to exit w/non true.
> Any suggestions to help me out.
>
> Ultimately I want something like this pseudocode...
>
> if (no args supplied):
> curs.execute("""SELECT userid FROM users""")
> data = curs.fetchall()
> else:
> data = sys.argv[1]
Personally, I'd go with:
try:
data = sys.argv[1]
except IndexError:
curs.execute(...)
data = curs.fetchall()
"Better to Ask Forgivness Than Permission"-ly y'rs.
Bill
More information about the Python-list
mailing list