2017-03-31 30 views
0

在一个Python程序中有一段代码。它运行良好。关于打印出os.environ变量

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')可以成功执行,为什么它不能被打印出来?

回答

0

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

线os.environ['TV_DIR_RUNS'] = ...是if语句的块中,检查是否'TV_DIR_RUNS'os.environ