how do I print help info if no arguments are passed to python script?
#!/usr/bin/env python
import sys
for arg in sys.argv:
if arg == "do":
do this
if arg == ""
print "usage is bla bla bla"
what I'm missing is if arg == ""
line that I don't know how to express :(
But in the general case, if you wanted to pass None to the function, what you can do is initialise a sentinel default_y = object() in the outer scope, and then check against that in the conditional.
An empty argument list in a function definition indicates that a function that takes no arguments. An empty argument list in a function declaration indicates that a function may take any number or type of arguments.
None is often used as a default argument value in Python because it allows us to call the function without providing a value for an argument that isn't required on each function invocation.
You can define Python function optional arguments by specifying the name of an argument followed by a default value when you declare a function. You can also use the **kwargs method to accept a variable number of arguments in a function.
if len(sys.argv) == 1:
# Print usage...
The first element of sys.argv is always either the name of the script itself, or an empty string. If sys.argv has only one element, then there must have been no arguments.
http://docs.python.org/library/sys.html#sys.argv
if len(sys.argv)<2:
The name of the program is always in sys.argv[0]
You can check if any args were passed in by doing:
#!/usr/bin/env python
import sys
args = sys.argv[1:]
if args:
for arg in args:
if arg == "do":
# do this
else:
print "usage is bla bla bla"
However, there are Python modules called argparse or OptParse (now deprecated) that were developed explicitly for parsing command line arguments when running a script. I would suggest looking into this, as it's a bit more "standards compliant" (As in, it's the expected and accepted method of command line parsing within the Python community).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With