How to check if an argument from commandline has been set?

Question:

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)

But how could I test if the argument has been entered in the command line call? I need to do something like this:

if isset(sys.argv[1]):
    foo(sys.argv[1])
else:
    print "You must set argument!!!"
Asked By: Richard Knop

||

Answers:

if(sys.argv[1]): should work fine, if there are no arguments sys.argv[1] will be (should be) null

Answered By: J V
import sys
len( sys.argv ) > 1
Answered By: khachik
if len(sys.argv) < 2:
    print "You must set argument!!!"
Answered By: chris

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()
Answered By: Katriel

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.

Answered By: DNS

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

Answered By: Rafi
for arg in sys.argv:
    print (arg)  
    #print cli arguments

You can use it to store the argument in list and used them. Is more safe way than to used them like this sys.argv[n]

No problems if no arguments are given

Answered By: Valentinos Ioannou
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.

Answered By: Miguel Armenta

This script uses the IndexError exception:

try:
    print(sys.argv[1])
except IndexError:
    print("Empty argument")
Categories: questions Tags:
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.