python如何使用信号量动态更新配置文件

  介绍

这篇文章主要介绍python如何使用信号量动态更新配置文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

一种小技巧,可以让python捕获信号量玫瑰然后当使用杀发起玫瑰信号量的时候捕获到进行处理,可以处理为重新读取配置文件并重新赋值,这样不需要重启服务也可以让程序重新读取配置文件的内容

<强>捕获信号量

import 信号   import  ConfigParser      def  get_config ():=,,conf  ConfigParser.ConfigParser ()   ,conf.read (“config.cfg")=,,name  conf.get (“test",,“name")   ,打印(名字)   ,   帧def  update_config(符号):   ,打印(“update  config")   ,get_config ()      帧def  ctrl_c(符号):   ,打印(“input  ctrl  c")   ,退出(1)      #,捕获消息很灵通的   signal.signal (signal.SIGHUP, update_config)   #,捕获ctrl + c   signal.signal (signal.SIGINT, ctrl_c)      打印(“test  signal")   get_config ()      while 真正的:   之前,通过

配置文件

,美元cat  config.cfg    (测试)=#,name “Recar"   name =,“@@@"

执行程序python

 python如何使用信号量动态更新配置文件

修改配置文件名称为Recar

发起玫瑰信号

 python如何使用信号量动态更新配置文件

切到捕获的信号量看到重新更新了配置文件

 python如何使用信号量动态更新配置文件

这里我开始还有从配置的导入名称

然后捕获信号量再重新导入,也就是再执行一下从配置导入名称

这样是不行的,如果想要重新导入需要重载(模块)但是这里重新加载不支持从的形式

我改为进口配置然后在自定义的信号量处理函数中重载(配置)来实现重新载入模块。

还是推荐使用ConfigParser来获取配置文件好一些。

<强>补充知识: <强> python3-ConfigParser让配置文件生效

INI文件由节,键,值组成。格式如下:

例如:

(部分)   名称=值   名称:值

注解使用分号表示(,)。在分号后面的文字,直到该行结尾都全部为注解。

configparser模块含有configparser类,主要包含三个模块:RawConfigParser (), configparser (), SafeConfigParse()这三个方法(三选一),创建一个对象使用对象的方法对配置文件进行增删改查操作。

得到configparser  import  ConfigParser
  ,==,if  __name__ “__main__":,
  ,
  #写入数据到test.ini文件
  ,配置=ConfigParser ()
  ,config.add_section(& # 39;登录# 39;)
  ,config.set(& # 39;登录# 39;,& # 39;名字# 39;,& # 39;测试# 39;)
  ,config.set(& # 39;登录# 39;,& # 39;爪子# 39;,& # 39;测试# 39;)
  ,
  ,with 开放(“test.ini" & # 39; w + & # 39;), as  f :
  config.write才能(f)
  ,
  ,
  ,with 开放(“test.ini" & # 39; " # 39;), as  f_read:
  config.read_file才能(f_read)
  打印才能(config.get(& # 39;登录# 39;& # 39;名字# 39;))
  config.read才能(f_read)
  #才能获取部分
  打印才能(config.sections ())
  #才能获取钥匙
  打印才能(config.get(& # 39;登录# 39;& # 39;名字# 39;))
  #才能获取价值
  打印才能(config.get(& # 39;登录# 39;& # 39;爪子# 39;))
  #才能获取某个部分下的键,值
  打印才能(config.options(& # 39;登录# 39;))
  #才能判断节是否存在,存在返回真,不存在返回错误的
  打印才能(config.has_section(& # 39;登录# 39;))
  #才能方法判断下,某个键是否存在,存在返回真,不存在返回错误的
  打印才能(config.has_option(& # 39;登录# 39;& # 39;name1& # 39;)) 

<强>删除

remove_section()方法删除某个部分,remove_option()方法删除某个部分下的键config.remove_section(& # 39;登录# 39;& # 39;爪子# 39;)

注:要先读到内存

<代码> config.read(文件)

实际删除的为内存中的,文件中的部分的键不会减少

以上是“python如何使用信号量动态更新配置文件”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

python如何使用信号量动态更新配置文件