读取文件中的文本以检查环境变量

时间:2012-05-14 08:57:25

标签: python

我正在尝试读取文本文件的内容,然后使用它来执行某些设置的os.getenv检查。我在将文本变成变量时遇到麻烦你可以帮忙吗?

代码是

import os
for env_check in open('env_check.conf'):
  print env_check
  newenv = os.getenv('"'+env_check+'"')
  if newenv is None:
    print newenv, 'is not set'
  else:
    print 'Current Setting for ' + newenv

提前致谢

2 个答案:

答案 0 :(得分:3)

如果您在方括号中打印环境变量,您很快就会看到他们附加了换行符(我假设换行符分隔您在评论中提到的列表,如果您有逗号分隔列表或某些此类列表然后需要额外的工作)。

您可以使用str.strip()删除这些内容,然后将此变量直接传递到os.getenv()。然后你就可以打印它们了:

import os
for env_check in open('env_check.conf'):
    env_check = env_check.strip()
    print '[{}]'.format(env_check)
    newenv = os.getenv(env_check)
    if newenv is None:
        print env_check, 'is not set'
    else:
        print 'Current Setting for {}={}'.format(env_check, newenv)

答案 1 :(得分:1)

os.getenv()运行正常。我的猜测是你在环境变量名称周围添加的引号不应该存在。取代

os.getenv('"'+env_check+'"')

os.getenv(env_check)

正如@BluePeppers正确指出你也应该替换

print newenv, 'is not set'

print env_check, 'is not set'