gpt4 book ai didi

python - 在 Python 中为 os.path.expandpath 使用自定义环境变量

转载 作者:行者123 更新时间:2023-12-03 20:20:41 25 4
gpt4 key购买 nike

似乎 Python 的 os.path.expandvars() 函数在调用进程环境上运行。有没有办法在不污染过程环境的情况下将我自己的新变量添加到组合中?

我能想到的最好的办法是:

>>> env = os.environ
>>> env["FOO"] = "VAL"
>>> os.path.expandvars("variable FOO=$FOO")
'variable FOO=VAL'
>>> del env["FOO"]

理想情况下,我想传递一个 env 参数,就像 subprocess.Popen() 的参数一样。看来我必须自己编写这样的包装器?

最佳答案

这可能看起来很愚蠢,但请尝试执行以下操作:

# Crete a new env and modify it
new_env = os.environ.copy()
new_env["FOO_VAR"] = "FOO_VALUE"

# Replace the env e use expandvars
tmp_env = os.environ
os.environ = new_env
print(os.path.expandvars("variable FOO=$FOO_VAR"))

# Return to the old env
os.environ = tmp_env
顺便说一句,我最初使用正则表达式来识别 %(?.+)% 和 $\{?(?.+)\}?[/\\\n],但执行上述操作似乎更好。

关于python - 在 Python 中为 os.path.expandpath 使用自定义环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27395279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com