Python -- Command Line Parameter Parsing Demo, python -- demo

Source: Internet
Author: User

Python -- Command Line Parameter Parsing Demo, python -- demo

When writing a program without an operation interface, the most annoying issue is Parameter Parsing, especially for many parameters. Here is a small Demo to share with you:

 1 # -*- coding:utf8 -*- 2 import os 3 import datetime 4 import sys 5 from optparse import OptionParser 6  7  8 def get_user_paras(): 9     try:10         opt = OptionParser()11         opt.add_option('--host_ip',12                        dest='host_ip',13                        type=str,14                        help='the ip of the check host')15         opt.add_option('--run',16                        action="store_true",17                        dest="is_run",18                        default=False,19                        help="run the scripts")20         opt.add_option('--view',21                        action="store_false",22                        dest="is_run",23                        default=False,24                        help="only view but not run the scripts")25         opt.add_option('--show_type',26                        dest="show_type",27                        type=int,28                        default=0,29                        help="0 or 1, 0 only show the simple data, 1 show the full data")30         (options, args) = opt.parse_args()31         is_valid_paras = True32         error_messages = []33         host_ip = options.host_ip34         is_run = options.is_run35         show_type = options.show_type36         if not host_ip:37             error_messages.append("host_ip must be set;")38             is_valid_paras = False39         if show_type not in [0, 1]:40             error_messages.append("show_type only can be 0 or 1;")41             is_valid_paras = False42 43         if is_valid_paras:44             user_paras = {"host_ip": host_ip, "is_run": is_run, "show_type": show_type}45             return user_paras46         else:47             for error_message in error_messages:48                 print(error_message)49             return None50     except Exception as ex:51         print("exception :{0}".format(str(ex)))52         return None53 54 55 def main():56     user_paras = get_user_paras()57     if user_paras is None:58         sys.exit(0)59     info = "host_ip:{0}, is_run:{1}, show_type:{2}"60     info = info.format(user_paras["host_ip"],61                        user_paras["is_run"],62                        user_paras["show_type"])63     print(info)64 65 66 if __name__ == '__main__':67     main()

 

When OptionParser is used, the -- help and-h parameters are automatically added, and parameter help is automatically generated, for example:

 

For code:

opt.add_option('--run',               action="store_true",               dest="is_run",               default=False,               help="run the scripts")

-- Run indicates the parameter name.

Action indicates how to process the parameter values. store/store_true/store_false is commonly used, and store is the literal meaning. store_true means that True is passed to the parameter as the parameter value, store_false pass False as the parameter value to the parameter

Dest indicates the name of the parsed command line parameter,

In the code above, -- run is passed in as a command line parameter. Because action is store_true, the parameter value is True. The parsed parameter is is_run, and the value is (options, args) = opt. after parse_args () is assigned a value, options can be used. is_run.

 

More help: https://docs.python.org/2/library/optparse.html

##=================================================== ============================== ##

When there are many parameters or large parameter values, I prefer to use the parameter configuration file for simple and convenient editing. For example, to create a run_config.py file:

# -*- coding:utf8 -*-# run configclass RunConfig(object):    is_run = True    show_status = 1    host_ip = "192.167.1.1"    run_scripts = """SELECT *FROM TB001WHERE ID >1000AND C1<300"""

Then access it in other files:

# -*- coding:utf8 -*-from run_config import RunConfigdef main():    print("is_run:{0},  host_ip:{1}".format(RunConfig.is_run,RunConfig.host_ip))    print("run_scripts:{0}".format(RunConfig.run_scripts))if __name__ == '__main__':    main()

Simple and rude, not so troublesome. What does the leopard do!

 

##=================================================== ================== ##

 

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.