国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python使用信號(hào)量動(dòng)態(tài)更新配置文件的操作

瀏覽:17日期:2022-07-31 14:32:45

一種小技巧,可以讓python捕獲信號(hào)量HUP 然后當(dāng)使用 kill 發(fā)起HUP信號(hào)量的時(shí)候 捕獲到進(jìn)行處理,可以處理為重新讀取配置文件并重新賦值,這樣不需要重啟服務(wù)也可以讓程序重新讀取配置文件的內(nèi)容

捕獲信號(hào)量

import signalimport ConfigParserdef get_config(): conf = ConfigParser.ConfigParser() conf.read('config.cfg') name = conf.get('test', 'name') print(name) def update_config(signum,frame): print('update config') get_config()def ctrl_c(signum,frame): print('input ctrl c') exit(1)# 捕獲HUPsignal.signal(signal.SIGHUP, update_config)# 捕獲ctrl+csignal.signal(signal.SIGINT, ctrl_c)print('test signal')get_config()while True: pass

配置文件

$ cat config.cfg [test]# name = 'Recar'name = '@@@'

執(zhí)行程序 python

python使用信號(hào)量動(dòng)態(tài)更新配置文件的操作

修改配置文件 name為Recar

發(fā)起HUP信號(hào)

python使用信號(hào)量動(dòng)態(tài)更新配置文件的操作

切到捕獲的信號(hào)量看到重新更新了配置文件

python使用信號(hào)量動(dòng)態(tài)更新配置文件的操作

這里我開(kāi)始還有的 from config import name

然后捕獲信號(hào)量再重新導(dǎo)入,也就是再執(zhí)行一下 from config import name

這樣是不行的,如果想要重新導(dǎo)入需要 reload(模塊) 但是這里reload不支持 from的形式

我改為 import config 然后在 自定義的信號(hào)量處理函數(shù)中 reload(config) 來(lái)實(shí)現(xiàn)重新載入模塊。

還是推薦使用 ConfigParser 來(lái)獲取配置文件好一些。

補(bǔ)充知識(shí):python3-ConfigParser讓配置文件生效

INI文件由節(jié)、鍵、值組成。格式如下:

例如:

[section]name=valuename:value

注解使用分號(hào)表示(;)。在分號(hào)后面的文字,直到該行結(jié)尾都全部為注解。

configparser模塊含有configparser類,主要包含三個(gè)模塊:RawConfigParser(),ConfigParser()、SafeConfigParse()這三個(gè)方法(三選一),創(chuàng)建一個(gè)對(duì)象使用對(duì)象的方法對(duì)配置文件進(jìn)行增刪改查操作.

from configparser import ConfigParser if __name__ == '__main__': #寫(xiě)入數(shù)據(jù)到test.ini文件 config=ConfigParser() config.add_section(’login’) config.set(’login’,’name’,’test’) config.set(’login’,’paw’,’test’) with open('test.ini',’w+’) as f : config.write(f) with open('test.ini',’r’) as f_read: config.read_file(f_read) print(config.get(’login’,’name’)) config.read(f_read) #獲取section print(config.sections()) #獲取key print(config.get(’login’,’name’)) #獲取value print(config.get(’login’,’paw’)) #獲取某個(gè)section下的key,value print(config.options(’login’)) #判斷section是否存在,存在返回True,不存在返回False print(config.has_section(’login’)) #方法判斷section下,某個(gè)鍵是否存在,存在返回True,不存在返回False print(config.has_option(’login’,’name1’))

刪除

remove_section()方法刪除某個(gè)section,remove_option()方法刪除某個(gè)section下的鍵 config.remove_section(’login’,’paw’)

注:要先read到內(nèi)存

config.read(file)

實(shí)際刪除的為內(nèi)存中的,文件中的section的鍵不會(huì)減少

以上這篇python使用信號(hào)量動(dòng)態(tài)更新配置文件的操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 亚洲综合网在线观看 | 美女张开腿让我 | 日韩专区亚洲精品欧美专区 | 色欲麻豆国产福利精品 | 久久爱一区 | 精品久久一区二区 | 欧美a毛片 | 成年女人看片免费视频播放器 | 日韩欧美精品一区二区 | 毛片精品| 国产不卡影院 | 成人18免费软件 | 男人操女人逼逼视频 | 毛片在线播放网站 | 国内精品福利视频 | 台湾三级| 国产欧美成人一区二区三区 | 免费毛片视频网站 | 永久精品免费影院在线观看网站 | 欧美精品束缚一区二区三区 | 国产精品一区久久精品 | 国产偷自拍 | 碰碰久久 | 亚洲视频 在线观看 | 曰韩毛片 | 国产成人精品一区二区免费 | 正在播放亚洲一区 | a一级免费视频 | 国产精品免费视频一区二区三区 | 日本加勒比在线视频 | 国产一区二区三区久久精品小说 | 成人a毛片免费全部播放 | 久草免费资源视频 | 成人一a毛片免费视频 | 亚洲高清国产品国语在线观看 | 亚洲精品日本 | 欧美一级久久久久久久大片 | 亚洲一区二区三区四区在线观看 | 亚洲欧洲无码一区二区三区 | 免费一级毛片在线播放放视频 | www.日本免费 |