关于打印出os.environ变量

时间:2017-03-31 16:16:39

标签: python python-3.x

一个Python程序中有一个代码段。它运行良好。

if 'TV_DIR_RUNS' in os.environ:
    os.environ['TV_DIR_RUNS'] = os.path.join(os.environ['TV_DIR_RUNS'],'Seg')

我试图通过添加os.environ['TV_DIR_RUNS']函数来查看print

if 'TV_DIR_RUNS' in os.environ:
    os.environ['TV_DIR_RUNS'] =    os.path.join(os.environ['TV_DIR_RUNS'],'KittiSeg')
print(os.environ['TV_DIR_RUNS'])

然后运行该程序会生成以下错误消息

File "train.py", line 107, in main
print(os.environ['TV_DIR_RUNS'])
File "/devl/lib/python3.4/os.py", line 635, in __getitem__
raise KeyError(key) from None
KeyError: 'TV_DIR_RUNS'

这让我很困惑,因为在我看来os.environ['TV_DIR_RUNS'] = os.path.join(os.environ['TV_DIR_RUNS'],'KittiSeg')可以成功执行,为什么不能打印出来?

1 个答案:

答案 0 :(得分:0)

我想你会发现'TV_DIR_RUNS'不在os.environ。将您的行更改为print(os.environ.get('TV_DIR_RUNS'))

os.environ['TV_DIR_RUNS'] = ...位于if语句的块内,检查'TV_DIR_RUNS'是否在os.environ