By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,097 Members | 1,580 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,097 IT Pros & Developers. It's quick & easy.

Question about 'if __name__ == "__main__":'

P: n/a
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.

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]

do something with data:
blah
blah
blah

Thanks in advance for your help.
Jul 18 '05 #1
Share this Question
Share on Google+
4 Replies


P: n/a
PoD
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.


Hint: len(sys.argv)

Jul 18 '05 #2

P: n/a
Thanks....

exactly what I was looking for.

"PoD" <po*@internode.on.net> wrote in message
news:pa***************************@internode.on.ne t...
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.


Hint: len(sys.argv)

Jul 18 '05 #3

P: n/a
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
Jul 18 '05 #4

P: n/a
Thanks. I think I will probably use the len(sys.args) line. That seems
like a really staright forward approach since I will either be supplying an
argument - or not.
"Amy G" <am*******@cox.net> wrote in message
news:k9ITb.28697$P17.28414@fed1read03...
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.

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]

do something with data:
blah
blah
blah

Thanks in advance for your help.

Jul 18 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.