I can call my script like this:
python D:\\myscript.py 60
And in the script I can do:
arg = sys.argv[1]
foo(arg)
Don't use sys.argv
for handling the command-line interface; there's a module to do that: argparse.
You can mark an argument as required by passing required=True
to add_argument
.
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument("foo", ..., required=True)
parser.parse_args()
if len(sys.argv) == 1:
print('no arguments passed')
sys.exit()
This will check if any arguments were passed at all. If there are no arguments, it will exit the script, without running the rest of it.
If you're using Python 2.7/3.2, use the argparse module. Otherwise, use the optparse module. The module takes care of parsing the command-line, and you can check whether the number of positional arguments matches what you expect.
I use optparse module for this but I guess because i am using 2.5 you can use argparse as Alex suggested if you are using 2.7 or greater
if(sys.argv[1]):
should work fine, if there are no arguments sys.argv[1] will be (should be) null
len(sys.argv) > 1