我正在尝试读取文本文件的内容,然后使用它来执行某些设置的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
提前致谢
答案 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'