【问题标题】:How to evaluate environment variables into a string in Python?如何在 Python 中将环境变量评估为字符串?
【发布时间】:2010-09-28 01:36:11
【问题描述】:

我有一个代表路径的字符串。因为这个应用程序在 Windows、OSX 和 Linux 上使用,我们已经定义了环境变量来正确映射来自不同文件系统的卷。结果是:

"$C/test/testing"

我想要做的是评估字符串中的环境变量,以便将它们替换为各自的卷名。是否有我遗漏的特定命令,或者我必须采取os.environ.keys() 并手动替换字符串?

【问题讨论】:

    标签: python filesystems environment-variables


    【解决方案1】:

    使用os.path.expandvars扩展字符串中的环境变量,例如:

    >>> os.path.expandvars('$C/test/testing')
    '/stackoverflow/test/testing'
    

    【讨论】:

    • 很遗憾没有办法逃避 $ 来阻止一些变量被扩展。例如,$C/test/$$ACTION 或 $C/test/\$ACTION 生成字符串 '/stackoverflow/test/$ACTION
    • @JulianMann 如果将DOLLARSIGN 定义为变量,则可以在要使用文字美元符号的地方使用${DOLLARSIGN}
    【解决方案2】:

    在 Python 3 中你可以这样做:

    '{VAR}'.format(**os.environ))
    

    例如

    >>> 'hello from {PWD}'.format(**os.environ))
    hello from /Users/william
    

    【讨论】:

      猜你喜欢
      • 2019-07-09
      • 2013-06-01
      • 2020-11-16
      • 2022-01-19
      • 1970-01-01
      • 2010-10-14
      • 2011-07-04
      • 2021-08-28
      • 1970-01-01
      相关资源
      最近更新 更多