在Python中读取一个文本文件,以恢复其中定义的变量



我有一个.txt文件,其中包含:

diccionario = {'1':"whatever", '2':54}

我想以这样一种方式读取程序内部的那个文件;diccionario";在该程序中创建具有所需值的。

我试过这样使用exec(),但它不起作用。

exec(open("file.txt","r").read())

提前谢谢。

如果使用exec运行代码,则可以像访问任何常规变量一样访问代码中定义的变量:

code = "variable = 'Hello, world!'"
exec(code)
print(variable)

该输出:

Hello, world!


以上仅适用于repl环境。不幸的是,在repl之外是不可能的。好消息是,您可以实现相同的功能。除了代码之外,exec还采用了另外两个参数:globalslocals。它们分别表示所有全局定义的变量和绑定到局部作用域的变量。在代码执行期间,这些值将用作全局和本地作用域。它们的默认值是globals()locals(),因此exec(code, globals(), locals())exec(code)相同。

通常情况下,您不能修改locals(),因此无法将变量添加到本地作用域。但是,可以添加全局变量:

code = "global variable; variable = 'Hello, world!'"
exec(code)
print(variable)

缺点是必须将变量声明为全局变量。如果你不能做到这一点,还有最后一个选择:

code = "variable = 'Hello, world!'"
exec_locals = { }
exec(code, globals(), exec_locals)
print(exec_locals)

由此产生:{ 'variable': 'Hello, world!' }

使用它,您可以访问code中定义的局部变量

相关内容

最新更新