SafeConfigParser:部分和环境变量

2024-01-03

(使用Python 3.4.3)

我想在我的配置文件中使用环境变量,我读到我应该使用SafeConfigParser with os.environ作为参数来实现它。

[test]
mytest = %(HOME)s/.config/my_folder

由于我需要获取一个部分中的所有选项,因此我正在执行以下代码:

userConfig = SafeConfigParser(os.environ)
userConfig.read(mainConfigFile)
for section in userConfig.sections():
    for item in userConfig.options(section):
        print( "### " + section + " -> " + item)

我的结果不是我所期望的。正如您在下面看到的,它不仅有我在我的部分中拥有的选项([test]\mytest),还有所有环境变量:

### test -> mytest
### test -> path
### test -> lc_time
### test -> xdg_runtime_dir
### test -> vte_version
### test -> gnome_keyring_control
### test -> user

我究竟做错了什么?

我希望能够解析[test]\mytest as /home/myuser/.config/my_folder但不想要SafeConfigParser将我的所有环境变量添加到其每个部分。


如果我理解了你的问题以及你想要正确做什么,你可以通过以下方式避免这个问题not供应os.environ作为参数SafeConfigParser。相反,使用它作为vars当您实际使用以下命令检索值时关键字参数的值get() method.

这是有效的,因为它避免了创建default所有环境变量中的部分,但允许在出于插值/扩展目的引用时使用它们的值。

userConfig = SafeConfigParser()  # DON'T use os.environ here
userConfig.read(mainConfigFile)

for section in userConfig.sections():
    for item in userConfig.options(section):
        value = userConfig.get(section, item, vars=os.environ)  # use it here
        print('### [{}] -> {}: {!r}'.format(section, item, value))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SafeConfigParser:部分和环境变量 的相关文章

随机推荐

  • 混合 16 位线性 PCM 流并避免削波/溢出

    我尝试将 2 个 16 位线性 PCM 音频流混合在一起 但似乎无法克服噪音问题 我认为它们是在将样品混合在一起时溢出的 我有以下功能 short int mix sample short int sample1 short int sam
  • CPU和GPU的区别

    CPU的单个处理单元和GPU的单个处理单元有什么区别 我在互联网上看到的大多数地方都涵盖了两者之间的高级差异 我想知道每条指令可以执行哪些指令 它们的速度有多快 以及这些处理单元如何集成到完整的架构中 这似乎是一个答案很长的问题 所以很多链
  • 在 spring jpa 实体中保存级联实体后缺少值

    我对 Spring 和 JPA 等比较陌生 我试图在标签和客户之间创建多对多关系 双向 我想我的关系是正确的 除了一个问题之外 一切都运行良好 保存到数据库后 Tag 值为 Null 所以我正在做的是 向客户添加新的标签列表 然后使用级联选
  • javascript中的子对象函数

    我知道您可以使用子对象和函数创建文字对象 var obj val 1 level1 val 2 val2 3 func function return this val2 console log obj val console log ob
  • 创建 Javascript 日历(完整,不弹出)

    我在创建 javascript 约会样式日历时遇到一些困难 虽然它确实进行了渲染 但我知道会有一种更有效的方法来实现它 有人有用于创建日历的模式吗 我将使用 jQuery 但我不想使用某人的日历插件 因为 a 我还没有找到适合我需要的插件
  • 修复 Google 地图折线的编码字符串

    我有一个编码字符串 我想用它在谷歌地图中画一条线 但由于反斜杠等特殊字符 Javascript 无法读取该字符串 不幸的是我对Javascript没有太多经验 而且我不知道如何转义这些字符 编码字符串 qikrIehwu WOKEIAIBG
  • MVC 和 JQuery:检索表单数据的最佳实践

    我有一些 JQuery 使用 Ajax 将信息发送回我的控制器进行处理 我这样做是这样的 Define my controls Get the values from my controls var param1 pName val Def
  • 零散的响应与浏览器响应不同

    我正在尝试用 scrapy 抓取此页面 http www barnesandnoble com s dref 4815 sort SA startat 7391 我得到的响应与我在浏览器中看到的不同 浏览器响应有正确的页面 而 scrapy
  • Angular2 Pipe 转换货币

    我创建了一个使用 api 转换货币的方法 如下所示 exchange Input string Output string value number number let inputRate this currencyStorage get
  • 休眠错误:当前事务被中止,命令被忽略直到事务块结束

    我随机在 catalina out 日志中看到相同的错误 WARNING SQL Error 0 SQLState 25P02 Sep 8 2010 11 50 13 PM org hibernate util JDBCExceptionR
  • Android 上的推送通知负载中的 gcm.notification.e=1 代表什么?

    我正在编写一个 Android 应用程序 它使用 Google Cloud Messaging 从服务器接收下游消息 当收到消息时onMessageReceived我打印了捆绑包并阅读了以下内容 RECEIVED PUSH NOTIFICA
  • 如何从 docker credStore 检索密码?

    我在用着docker credential desktop存储我的远程 docker 注册表的密码 据我了解 此命令应该检索我的注册表密码和用户名 docker credential desktop get https index dock
  • Web 应用程序加入 Azure Web Marketplace

    我们检查了这个文档 https blogs msdn microsoft com appserviceteam 2016 08 26 onboarding to azure web marketplace https blogs msdn
  • .Net XML 模式验证是否应该在到达第一个无效元素时停止?

    我加载了一个 XML 字符串和一个架构并将其传递到一个函数中 我让它根据模式正确验证 XML 但是它总是在第一个无效元素的范围内停止验证 无效数据 它会继续下去 无效 缺失属性 会继续下去 但无效元素 它会停止 并且不会在该范围内进一步验证
  • 如何强制元素保持在同一行

    嗨 我有以下 css div container height 20px overflow hidden margin 15px 0px padding 5px 10px 5px 10px white space nowrap div co
  • 如何获取类路径上的包和/或类的列表?

    在 Java 中 我可以使用 ClassLoader 来获取已加载的类的列表以及这些类的包 但是如何获取可以加载的类的列表 即位于类路径上的类的列表 与包裹相同 这是针对编译器的 在解析 foo bar Baz 时 我想知道 foo 是否是
  • 升级到 FirebaseUI 3.0 后无法使用 FirebaseRecyclerOptions 检索数据

    我在用着FirebaseRecyclerOptions因为我升级到了新的 FirebaseUI 3 0 版本 但现在我无法从数据库中检索任何内容 相同的代码在旧版本中运行得很好FirebaseRecylcerAdapter方法 好像根本进不
  • 如何在Java 8中动态进行过滤?

    我知道在 Java 8 中 我可以像这样进行过滤 List
  • 将导入的函数连接到 Qt5 进度条,无需依赖

    我正在编写一组小型 python 应用程序 旨在通过 CLI 运行 一些功能应该捆绑在 PyQT5 GUI 中以便更容易使用 现在 我的包中有一个函数 它往往运行很长时间 所以我想显示一个进度条 但是 该函数本身需要能够在没有 QT5 的情
  • SafeConfigParser:部分和环境变量

    使用Python 3 4 3 我想在我的配置文件中使用环境变量 我读到我应该使用SafeConfigParser with os environ作为参数来实现它 test mytest HOME s config my folder 由于我