有没有一种方法可以优雅地检查是否设置了已知数量的环境变量?
这是在运行Python 3.7.3的MacOS上。我正在创建一个命令行应用程序,它将连接到Google Sheet和MySQL数据库。在进行所有连接之前,我想采用一种优雅的方法来检查所有环境。变量已设置。如果未设置一个或多个,则不要尝试连接到Google或MySQL。
try:
#print("Checking ENVIRONMENT variables...")
SPREADSHEET_ID = os.environ['SPREADSHEET_ID']
SERVICE_ACCESS_FILE = os.environ['SERVICE_ACCESS_FILE']
MYSQL_HOST = os.environ['MYSQL_HOST']
MYSQL_DATABASE = os.environ['MYSQL_DATABASE']
MYSQL_ID = os.environ['MYSQL_UID']
MYSQL_PWD = os.environ['MYSQL_PWD']
MTEST = os.environ['MTEST']
#print("All environment variables are set.")
except KeyError:
print("One or more Environment variables do not exist")
上述代码可以正常工作,但是如果我可以的话会很好 有一些干净的方法来检查每个。我可以为每个变量做一个“如果存在”的事情,但这似乎草率。最好将它放在可以处理此问题的函数中吗?也许让用户知道未设置哪些变量?
答案 0 :(得分:1)
不一定是最好的方法,但这是一个简单的衬里:
env_vars = ['SPREADSHEET_ID', 'SERVICE_ACCESS_FILE', ...]
if not set(os.environ).issuperset(env_vars):
print("One or more Environment variables do not exist")
甚至更好:
missing = set(env_vars) - set(os.environ)
if missing:
print("Environment variables do not exist: %s" % missing)