日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python】 配置解析ConfigParser 命令行参数解析optparser

發布時間:2023/12/18 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】 配置解析ConfigParser 命令行参数解析optparser 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ConfigParser

  ConfigParser包裝了配置文件的讀取和寫入,使得python程序可以更加輕松操作配置文件了。這里的配置文件是指.ini的那種文件,基本格式如下

[section_a] a_key1 = a_value1 a_key2 = a_value2[section_b] b_key1 = b_value1 b_key2 = b_value2 b_key3 = b_value3

?  將一個文件分隔成幾個section,每個section中又有很多鍵值對,以這樣的方式構建起配置文件。

  *每個value在被讀進程序的時候都是默認是str變量,所以不用 在配置文件里加引號

?

  ●  程序用法

import ConfigParsercf = ConfigParser.ConfigParser() cf.read('路徑') #讀取文件,但是即便是沒找到也不會報錯的,只是返回一個空列表########讀配置######## cf.sections() #返回所有section組成的列表 cf.options('section名字') #讀取某個section中所有的option,如返回['a_key1','a_key2']這樣子 cf.items() #返回[('a_key1','a_value1'),...]這樣子 cf.get('section_a','a_key1') #讀取某個value了########寫配置######## ''' read某個文件,相當于是把這個文件的內容加載進了內存里,然后可以進行以下的一些操作,把它修改掉 ''' cf.set('section_a','a_key3','a_value3') #增加一條新紀錄,這里鍵可以寫已存在的,那就是更新現有的value值 cf.add_section('section_c')cf.write(open("路徑","w")) #最后,把內存中改完的東西固化到一個文件中去,值得注意的是參數不是路徑而是一個文件對象!

  ●? ConfigParser的一些注意點

  第一,ConfigParser對象在使用read方法的時候,如果目標文件不存在,read方法不會報錯而是返回一個空列表。所以對于配置文件事先就不存在的情況需要自己剔除并且解決。

  第二,ConfigParser對象內部維護了一個堆棧,而read方法是不斷疊加地將配置內容加載到這個堆棧上去的。所以說在遍歷讀取不同配置的時候,如果有必要記得重新創建一個ConfigParser對象來保存信息。要不然之前被read進來的那些文件的信息會依舊在那里的。

【optparser】

  optparser和ConfigParser并沒有什么關系= =。 但是當時在學的時候感覺他們長得挺像的,沿襲了一下之前被單詞時的習慣,把長得像的都給歸結到一起來。。然后剛好這兩個內容又都不多,就寫在一篇里吧

  optparser主要為腳本加上命令行參數的支持。一般腳本只有sys.argv那樣的命令行參數,而optparser可以有像netstat -ntlp這樣的“杠”XX的命令,功能就強大了很多。

  首先還是看下主要怎么用:

  一般,關于optparser的操作都是寫在main函數里面,畢竟外界傳進來的參數要第一時間解析,才能判斷到底要做哪些工作。而這些操作,首先是設置命令行參數:

parser = optparser.OptionParser(usage='Usage:%prog [option]') #usage參數配置的字符串用于說明這個parser提供的命令行參數的用法。在參數為-h 或者--help的時候打印出相關的字符串。建議添加這個usage paser.add_option('-t','--test',dest='test_variable',default='default',type='string',help='It is a test option',action='store') ''' 這句話是optparser最重要的設置命令行參數的語句。add_option的幾個參數的意義分別是:參數短標識,參數長標識,存放變量名,默認值,存放類型,幫助信息,存放動作。所有參數的值都是字符串。 其中值得一提的是type的默認值就是'string',action一般設成'store' '''

?  在設置完幾個參數之后,就可以進行解析了,需要來一句語句:

(options,args) = parser.parse_args()

?

  之后,所有被傳遞到腳本的命令行參數都會被存放到options.XXX這個變量里,XXX是什么由之前設置的每個參數的dest決定。比如前面設置過了-t參數,那么命令行-t后面的值會以字符串的形式被存放到options.tset_variable里面,可以供后續程序使用了。

  另外,在設置參數的時候并沒有規定哪些參數是必須的,哪些是可選的,哪些可以不要跟值只需要一個-X出現就行等等。這些我沒仔細研究過,不過之前我的處理方法是,在解析完成后,用參數值之前,對獲得到的所有參數做一個判斷??纯词欠裼凶约罕仨毜膮禌]有傳進來,或者值不合法等等,這樣來做一個校驗。做完校驗之后如果發現校驗未通過就要拋出錯誤或者處理錯誤了。parser對象自帶一個error(s)的方法,可以把錯誤信息s打印到屏幕上提示用戶。如果覺得這樣處理錯誤不夠用還可以自己寫一個OptParser類,重載其中的error,exit等方法。

?

  ●? 如果想要有這個參數出現時表明一個True的情況,并不需要這個參數跟什么值的時候,可以選擇的action='store_true'或者'store_false'或者'store_const'。在指定action等于這些值的時候注意不能同時指定type參數,否則會報錯。

轉載于:https://www.cnblogs.com/franknihao/p/6536594.html

總結

以上是生活随笔為你收集整理的【Python】 配置解析ConfigParser 命令行参数解析optparser的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。