-1

我正在尝试读取文本文件的内容,然后使用它来执行 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

提前致谢

4

2 回答 2

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)
于 2012-05-14T09:29:23.220 回答
1

os.getenv()工作正常。我的猜测是您在环境变量名称周围添加的引号不应该在那里。代替

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

os.getenv(env_check)

正如@BluePeppers 正确指出的那样,您还应该替换

print newenv, 'is not set'

print env_check, 'is not set'
于 2012-05-14T09:00:12.227 回答