Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在循环中取消设置环境变量_Python_Environment Variables - Fatal编程技术网

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

今天我在Python中遇到了一个问题,我必须取消设置许多与特定模式匹配的环境变量。现在我想知道哪一种方法是蟒蛇式的。我在网上搜索答案,但找不到满意的答案

更新:

当我准备一个例子时,我自己找到了答案。有没有更好的办法

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根本就不提供取消设置环境变量的方法。但实际使用的每个平台都提供了这种方法。