作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
似乎 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/
我有可以过滤的 JXTreeTable。当我过滤关键字时,会设置一个新模型。对我来说效果很好。 现在我想展开所有过滤的结果。为此,我保存找到匹配节点的位置。 (它不可能是一片叶子。) 对于该位置,我使
Kendo 在 Q3 2013 的 treeView 中添加了一个名为 expandPath 的新 API 方法。不幸的是,我在 Kendo UI Docs 或其论坛中找不到任何关于它的文档。 有人用
我想出了这个 SSCCE 来重现我在一个更大的程序中遇到的一些奇怪的行为: import java.awt.BorderLayout; import java.awt.EventQueue; impo
似乎 Python 的 os.path.expandvars() 函数在调用进程环境上运行。有没有办法在不污染过程环境的情况下将我自己的新变量添加到组合中? 我能想到的最好的办法是: >>> env
我在扩展 JTree 时遇到了奇怪的问题。我尝试将 JTree 添加到 JScrollPane。 树应该恢复到展开状态,但它不起作用 - 树已折叠。 代码如下: if (expansionSta
我是一名优秀的程序员,十分优秀!