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

前端 未结 8 699
借酒劲吻你
借酒劲吻你 2020-12-28 12:26

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)

相关标签:
8条回答
  • 2020-12-28 12:54

    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()
    
    0 讨论(0)
  • 2020-12-28 12:56
    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.

    0 讨论(0)
  • 2020-12-28 13:00

    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.

    0 讨论(0)
  • 2020-12-28 13:03

    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

    0 讨论(0)
  • 2020-12-28 13:07

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

    0 讨论(0)
  • 2020-12-28 13:10

    len(sys.argv) > 1

    0 讨论(0)
提交回复
热议问题