解析文本文件中的键值对

Vin*_*ent 19 python file

我是Python的新手,我搜索如何解析.txt文件.我的.txt文件是一个名单,其计算信息如下:

myfile.txt文件

var0 = 16
var1 = 1.12434E10
var2 = -1.923E-3
var3 = 920

如何读取值并将它们myvar0, myvar1, myvar2, myvar3放在python中?

Lau*_*low 52

我建议将值存储在字典中而不是存储在单独的局部变量中:

myvars = {}
with open("namelist.txt") as myfile:
    for line in myfile:
        name, var = line.partition("=")[::2]
        myvars[name.strip()] = float(var)
Run Code Online (Sandbox Code Playgroud)

现在访问它们myvars["var1"].如果名称都是有效的python变量名,可以将其放在下面:

names = type("Names", [object], myvars)
Run Code Online (Sandbox Code Playgroud)

并访问值,例如names.var1.


小智 5

我个人通过创建一个.py文件解决了这个问题,该文件只包含所有参数作为变量-然后执行了以下操作:

include PARAMETERS.py
Run Code Online (Sandbox Code Playgroud)

在需要参数的程序模块中。

这有点丑陋,但是非常简单易用。


Fra*_*lli 5

字典推导 ( PEP 274 ) 可用于更短的表达式(60 个字符):

d = {k:float(v) for k, v in (l.split('=') for l in open(f))}
Run Code Online (Sandbox Code Playgroud)

编辑:由于@jmb 建议(避免.readlines()),从 72 个字符缩短到 60 个字符。