繁体   English   中英

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

[英]Read in Python a text file to recover the variables defined in there

我有一个 .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!' } { 'variable': 'Hello, world!' }

使用这个,你可以访问code定义的局部变量

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM