• 听到一个输入、输出的说法, 你觉得有道理吗?

    假设,你所读的文章, 看的书,都是一种养份,

    如果你吸收了养份,没有立即输出,则这个养份会供给到其他的部份,

    比如,你无法抒发的情绪很可能更增加,你的压力可能增加,

    当然你也可能内化了这些养份,

    但是这些你没有立即输出的养份,到底供给了什麽部份,并不确实知道。

    所以,当你要吸收养份的时候,请确保立即输出,输出了之後也能整理、过滤、内化。

    这样的说法,对吗?你认为呢?欢迎跟我讨论。

  • 为什麽别人的话术SOP你用不好?

    越复杂的结构,耦合度势必越高

    越单纯的结构,鲁棒性越高

    也因此对於初创的团队, 我都会用一个单纯的框架去建构工作引擎

    而对於已成立一段时间的团队,我都会先从既有的SOP开始优化,再进行创新

    还记得某洛姓老板,非常主观的直接把一个别的推广团队所使用的 推广SOP

    强加到某个自已公司的一个业推广团队上,导致团队2个星期业绩重创,

    而我所引导同公司的另一个业绩较差的团队,使用同一套推广SOP, 则是第二个星期开始业绩飙升。

    同一套SOP操作、说法、话术,为什麽有不同的结果?不值得深思吗?

  • 浅薄交流

    现代的通讯软件很发达,国内有 微信 国外有 whats app line

    造成了交流都是浅薄的,一句话过来你就一句话过去,

    没有书信或是 e-mail 时代的深思熟虑,

    都是很浅层的沟通,失去了深度。

  • 做什麽事情都是一样的,可以包装,但不要欺骗

    君子与骗子的区别

    君子说一句假话,没人会怀疑。

    骗子说十句实话,没人会当真。

  • 非敌亦友

    我们有个代理商的群组,大家彼此认识,有时互通有无。

    群组里大部份是同行,我们一直推行的是大家是战友不是敌人。

    群里气氛还不错,虽然大家还是有意无意避免讨论一些工作上的实际情况,

    但是对於一些消息的传递,比如检查、黑名单的公布还是满积极的

  • 人生应该追求进步还是快乐?

    这难道是二选一的问题吗?不应该是又进步又快乐吗?

    50%进步50快乐不好吗?10%进步90%快乐呢?90%进步10%快乐不好吗?

    进步只能痛苦?

    因为进步代表你脱离舒适圈?所以会痛苦?

    那如果不是完全脱离呢?

  • 梦想就是在梦中想想而已吗?

    对很多来说梦想就是在梦中想想,

    其实只要在多一个步骤,就可以筑梦踏实梦想成真

  • 是我当 youtuber 的话可以撑多久?

    按照miula 所说半年会经历死亡之谷,脑袋就会 burnout

    那如果是我呢?

    计算一下,一个星期一支影片,也就是1个主题,那要有26个新鲜主题就可以撑半年

    嗯.. 这个强度有点大,思考一下如何克服

  • 最怕打高空无限上纲

    在回答一些咨询的时候,最怕的就是打高空

    而聊天或是有点小小的辩论时,最怕的就是无限上纲

    你来咨询我聊天拉客户的瓶颈,我要帮你分析问题解决瓶颈,

    可是你又怕泄漏你的聊天技巧,你不肯说聊聊过程,或是含糊不清,

    那我怎麽帮你?谢谢,再联络

  • 过去式型成的原因

    最近听到不少陈年故事,某某人当年是明星队长,现在反而变成的嘴炮队长

    为什麽?原因是很值得我们去深思的

    除了时代在变迁之外,不同年纪会做出不同的决定,然後新的习惯会养成新的个性,

    而新的个性又影响了新决定,造成了有些人没有随著年纪成长,反而越活越回去

    深思,除了变成过去式,还会产生其他的现象

python3 恰到好处的 configparse 教程

大叔的python之路 andy 3个月前 (07-04) 241次浏览 已收录 0个评论 扫描二维码

python3 恰到好处的 configparse 教程

一般称 config.ini 为配置档, 主要内容是键值对(key=value)的组合,再加一个所属的段落(section)

内容大钓如下

[section_a]
key_1 = value_1

[section_b]
key_a = value_a

我们要的重点就是读取get、写入set。
请参考下方的代码
第 1行 引入 import configparser
第 3行 config = configpaser.ConfigParser() 起手式
第 4行 ini_file 是配置的路径跟档案名称,一般附档名会是 ini 或 cfg
第 5行 读入配置档
第 6行 section_name = “section_a” 我们要使用的段落名称
第 8行 # write 标记以下的代码是写入的部份 跟 第17行 功能一样,只是提示代码阅读者

config.has_section(section_name) 是判断名为 section_name 的段落存不存在
config.add_section(section_name) 增加名为 section_name 的段落

第10行 print has_section 的判断结果
第11~12行 如果 section_name 不存在,则增加 section_name 这个段落
第14行 config.set(section_name, ‘key_1’, ‘value_1’)
在 section_name 的段落里面加入 键名 为 key_1 值为 value_1 的键值对。

第15行 config.write(open(ini_file, ‘w’)) 以写入模式打开配置档, 然後写入全部配置

以上写入的部份完成,我们先说明写入的部份,
原因在於没有看过配置档的人在写入完配置档之後,可以直接用编辑器打开配置档。
此时配置档的内容应该有如上面的配置 section_a 这个段落,
你可以试试自已加上 section_b 的段落及所属配置

再来, 我们继续看 read 的部份, 读取配置的部份
第18行 config.get(section_name,’key_1′) 读出 section_name 段落里面键名称为 key_1 的值
config.has_option 判断段落内是否存在某个键值对
第 20行 print has_option 结果
第 21~22行 先判断 section_name 段落内有没有 key_2 这个键名称, 有的话 print 出值来

import configparser

config = configparser.ConfigParser()
ini_file = '../data/demo_config.ini'
config.read(ini_file)
section_name = "section_a"

# write

# print(config.has_section(section_name))
if not config.has_section(section_name):
    config.add_section(section_name)

config.set(section_name, 'key_1', 'value_1')
config.write(open(ini_file, 'w'))

# read
print(config.get(section_name, 'key_1'))

# print(config.has_option(section_name, 'key_2'))
if config.has_option(section_name, 'key_2'):
    print(config.get(section_name, 'key_2'))

python3 的 configparse 主要就是「简单」处理配置档,而这篇文章则讲了最常使用的功能,
其他的功能像是读入全部的配置然後一个个取出,
或是读入某个段落全部的键,然後再取用之类的,都比较不常使用。

简单! 完成!


神隊友學長Andy , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python3 恰到好处的 configparse 教程
喜欢 (0)
[320208045@qq.com]
分享 (0)
andy
关于作者:
从事软件开发多年的中年大叔, 专精於流程优化, 半退休後钻研投资理财颇有成效
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址