Python 參數設定

來源:互聯網
上載者:User

標籤:

方式一:設定檔(ConfigParser模組)

方式二:解析參數(argparse模組)

 

1. 設定檔(ConfigParser模組)

 

1.1 ConfigParser簡介

ConfigParser 是用來讀取設定檔的包。設定檔的格式如下:中括弧“[ ]”內包含的為section。section 下面為類似於key-value的options內容。例如

[db]db_host = 127.0.0.1db_port = 22db_user = rootdb_pass = rootroot [concurrent]thread = 10processor = 20

 

1.2 ConfigParser 初始工作

使用ConfigParser 首選需要初始化執行個體,並讀取設定檔:

import ConfigParsercf = ConfigParser.ConfigParser()cf.read("設定檔名")

 

1.3 ConfigParser函數

1.3.1. 擷取所有sections

>>> s = cf.sections()>>> print s[‘db‘, ‘concurrent‘]

1.3.2 獲得指定section的options

>>> cf.options(‘db‘)[‘db_host‘, ‘db_port‘, ‘db_user‘, ‘db_pass‘]

1.3.3 獲得指定sections的配置資訊

>>> cf.items(‘db‘)[(‘db_host‘, ‘127.0.0.1‘), (‘db_port‘, ‘22‘), (‘db_user‘, ‘root‘), (‘db_pass‘, ‘rootroot‘)]

1.3.4 獲得指定sections的option的資訊

>>> cf.get("db", "db_host")‘127.0.0.1‘>>> cf.getint("db", "db_port")22

同樣有getfloat、getboolean

以下注意:凡是改變檔案內容的,都要最後寫入。

1.3.5 設定某個option的值

>>> cf.set("db", "db_host", "127.1.1.1")>>> cf.write(open("config.ini", ‘w‘))

寫入後的檔案內容為

[db]db_host = 127.1.1.1db_port = 22db_user = rootdb_pass = rootroot[concurrent]thread = 10processor = 20

1.3.6 添加一個section

>>> cf.add_section("jihite")>>> cf.set("jihite", "int", "15")>>> cf.set("jihite", "bool", "True")>>> cf.set("jihite", "float", "3.14")>>> cf.write(open("config.ini", ‘w‘))

寫入後的檔案內容為

[db]db_host = 127.1.1.1db_port = 22db_user = rootdb_pass = rootroot[concurrent]thread = 10processor = 20[jihite]int = 15bool = Truefloat = 3.14

1.3.7 移除一個section

>>> cf.remove_option("jihite", "int")True>>> cf.write(open("config.ini", ‘w‘))

改變後的檔案為

[db]db_host = 127.1.1.1db_port = 22db_user = rootdb_pass = rootroot[concurrent]thread = 10processor = 20[jihite]bool = Truefloat = 3.14

1.3.8 移除一個option

>>> cf.remove_section("jihite")True>>> cf.write(open("config.ini", ‘w‘))

改變後的檔案為

[db]db_host = 127.1.1.1db_port = 22db_user = rootdb_pass = rootroot[concurrent]thread = 10processor = 20  

1.4 ConfigParser舉例

 

方式二:解析參數(argparse模組)

 

2. 解析參數(argparse模組)

 

2.1 argparse簡介

argparse是python的命令列解析工具,它是Python標準庫中推薦使用的編寫命令列程式的工具。

 

2.2 argparser 初始工作

import argparseparser = argparse.ArgumentParser()

類ArgumentParser定義為:

class ArgumentParser(prog=None, usage=None, description=None, epilog=None, parents=[], formatter_class=argparse.HelpFormatter, prefix_chars=‘-‘, fromfile_prefix_chars=None, argument_default=None, conflict_handler=‘error‘, add_help=True)

參數的含義為

2.2.1 prog:程式的名字,預設為sys.argv[0] 

>>> parser = argparse.ArgumentParser(prog="myprogram")>>> parser.print_help()usage: myprogram [-h]optional arguments:  -h, --help  show this help message and exit

2.2.2 usage: 描述程式用途的字串

>>> parser = argparse.ArgumentParser(prog="myprogram", usage="%(prog)s [options]")>>> parser.print_help()usage: myprogram [options]optional arguments:  -h, --help  show this help message and exit

2.2.3 description: help資訊前的文字

>>> parser.print_help()usage: myprogram [options]Create my own programoptional arguments:  -h, --help  show this help message and exit

2.2.4 epilog:help之後的文字

>>> parser = argparse.ArgumentParser(prog="myprogram", usage="%(prog)s [options]", description="Create my own program", epilog="And that‘s how you‘d foo a bar")>>> parser.print_help()usage: myprogram [options]Create my own programoptional arguments:  -h, --help  show this help message and exitAnd that‘s how you‘d foo a bar

2.2.5   

更詳細參考

 

2.3 添加參數選項

http://www.cnblogs.com/linxiyue/p/3908623.html?utm_source=tuicool

 

Python 參數設定

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.