我有一个文本文件params.txt
,即以下形式(忽略颜色格式,这是纯文本文件而不是python代码):
Lx = 512 Ly = 512
g = 400
================ Dissipation =====================
nupower = 8 nu = 0
alphapower = -0 alpha = 0
================ Timestepping =========================
SOMEFLAG = 1
SOMEOTHERFLAG = 4
dt = 2e-05
[...and so on]
也就是说,变量由其值以=
分隔,值是整数、浮点数和科学记数法的混合体,有时在一行上有两个变量/值对,用单个空格分隔,并且有表格的标题
================ HeadingToBeDiscarded ================
在python中,如何读取文本文件,并在python脚本中自动创建相同的变量,并为它们分配与文件中相同的值
每次文件的格式都是相同的,所以暴力强制是可能的,但我确信有一个优雅的python/regex解决方案(但我是python新手,几乎没有regex!)
现在,如果您想将
.txt
文件中的(硬编码?)数据转换为.py
文件,您应该使用如下内容:这将创建一个名为
sets.py
(您可以更改名称)的新python文件,并将所有值从文本文件存储到.py文件。现在要使用这些值,首先确保sets.py
与您的主python scipt位于同一目录中,然后执行from sets import *
现在您只需键入其名称即可访问这些值中的任何一个,并将其识别出来。试试看这应该是可行的字典的,我认为
大概是这样的:
这将以字典的形式留下一个输出,其中的键为:变量名,值为:变量本身。像这样:
变量={'Lx':'512','Ly':'512','nupower':'8','nu':'0'}
我不知道如何实现某种方式来检测它是int还是float
我的建议是,你可能不应该这样储存
如果人们甚至不考虑阅读,那么就使用pickle来存储python对象
如果它对人类来说是可读/可编辑的,我建议使用csv文件或类似的东西
相关问题 更多 >
编程相关推荐