Python 在循环中取消设置环境变量
今天我在Python中遇到了一个问题,我必须取消设置许多与特定模式匹配的环境变量。现在我想知道哪一种方法是蟒蛇式的。我在网上搜索答案,但找不到满意的答案 更新: 当我准备一个例子时,我自己找到了答案。有没有更好的办法Python 在循环中取消设置环境变量,python,environment-variables,Python,Environment Variables,今天我在Python中遇到了一个问题,我必须取消设置许多与特定模式匹配的环境变量。现在我想知道哪一种方法是蟒蛇式的。我在网上搜索答案,但找不到满意的答案 更新: 当我准备一个例子时,我自己找到了答案。有没有更好的办法 import os import re regex = re.compile(r'^(env_var_)(.*?)$', re.IGNORECASE) for key in os.environ.keys(): if regex.match(key): d
import os
import re
regex = re.compile(r'^(env_var_)(.*?)$', re.IGNORECASE)
for key in os.environ.keys():
if regex.match(key):
del os.environ[key]
谢谢你的帮助 提供表示环境的映射。从中删除(使用语句)将修改环境。您的模式似乎很容易使用正则表达式:
import os
var_mask = "env_var_"
for key in os.environ.keys():
if key.lower().startswith(var_mask):
del os.environ[key]
如果你发布你的代码,告诉我们它做了什么,告诉我们你想要它做什么,你的问题会更容易理解。事实上,我很难理解为什么环境变量的设置会有所不同,不管它们是否在循环中设置。您可以从
os.environ
中选择del
键。在什么是pythonic这个主题上,变量名(这里,Regex
和Key
)应该以小写字母开头(regex
和key
)感谢您的评论。我调整了示例代码。请注意,这取决于支持os.unsetenv
函数的平台。如果不是,Python根本就不提供取消设置环境变量的方法。但实际使用的每个平台都提供了这种方法。