如何在python 3.x中从外部文件中读取变量?

时间:2014-03-31 10:06:00

标签: python exec global local

我有以下文件(X:\ somepath \ somefile):

# This is a file containing default values
# It contains variables that users can change
val_1 = 123
val_2 = 456
print(val_1)

如何将这些变量放入一个如下所示的python脚本中:

@session.defButton('button name') # 3rd party thing
def stuff():
    file_name = 'X:\\somepath\\somefile' 
    exec(open(file_name, 'r').read()) # I used to use execfile(file_name) in 2.4
    print(val_2)   

它打印val_1但不打印val_2。这是我得到的错误

NameError: global name 'val_2' is not defined

如何在exec()函数之外定义它,还是有更正确的方法从外部文件中获取变量?我不知道全局/本地人需要在字典中使用什么格式。

1 个答案:

答案 0 :(得分:1)

首先,请检查是否由于某个文件中的print(val_1)语句而打印了val_1,因为您对其内容运行了exec

此外,您可以尝试使用路径中的正斜杠替换反斜杠(将\\更改为/)