我正在编写一个 Python 类来对流程进行建模,并且我想从文件中初始化参数,例如'input.dat'
。输入文件的格式如下所示。
'input.dat'
file:
Z0: 0 0
k: 0.1
g: 1
Delta: 20
t_end: 300
我写的代码如下。它有效,但显得多余且不灵活。有更好的方法来完成这项工作吗?比如循环执行readline()然后匹配关键字?
def load(self,filename="input.dat"):
FILE = open(filename)
s = FILE.readline().split()
if len(s) is 3:
self.z0 = [float(s[1]),float(s[2])] # initial state
s = FILE.readline().split()
if len(s) is 2:
self.k = float(s[1]) # kappa
s = FILE.readline().split()
if len(s) is 2:
self.g = float(s[1])
s = FILE.readline().split()
if len(s) is 2:
self.D = float(s[1]) # Delta
s = FILE.readline().split()
if len(s) is 2:
self.T = float(s[1]) # end time
假设参数来自安全的地方(由您或用户创建,而不是互联网),只需将参数文件设为 Python 文件,params.py
:
Z0 = (0, 0)
k = 0.1
g = 1
Delta = 20
t_end = 300
然后在您的代码中您需要的是:
import params
fancy_calculation(10, k=params.k, delta=params.Delta)
这样做的好处有两个:1)简单,2)你可以在参数描述中使用 Python 的强大功能——在这里特别有用,例如:
k = 0.1
Delta = 20
g = 3 * k + Delta
或者,您可以使用Python的内置JSON http://docs.python.org/library/json.html or ConfigParser .INI 解析器 http://docs.python.org/library/configparser.html模块。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)