Python 优化:解析文本文件以存储默认值并在 python 中创建密钥对字典
Python Optimization: Parsing a text file to store default values and create key-pair dictionary in python
我正在开发一个程序,我需要为其存储用户默认值,并且用户还应该可以选择修改默认值以供将来使用该程序。所以基本上,我有一个模块来管理默认参数和程序的其他方面,这些方面需要存储某些部分并在以后检索。比如管理默认参数,我在一个模块中有一个文件params.py
来管理params.txt
。 python 文件 params.py
本质上包含两个函数:(1) get_default_param(param_name)
和 (2) set_default_param(param_name)
.
params.txt
文件包含以下内容:
NDIV: 120
EXT: txt
UNITS: cm/s2
AM: 1.0, 1.0, 1.0, 1.0
params.py
文件包含:
def get_default_param_values():
default_val = {}
# Get params function
with open("data/defaults/params.csv") as f1:
for line in f1:
split_line = line.split(':')
default_val[split_line[0]] = [x.strip(" ") for x in split_line[1].strip('\n').split(',')]
return default_val
所以在我的 main.py
程序中,我将位于 data
包中 default
文件夹中的 params.py
称为
from data.defaults.params import get_default_param_values
default_values = get_default_param_values()
for i in range(0,1000):
#
# use default_values in the program. These values also gets passed down to other functions
#
如果不修改这些,我可以轻松地将它们放在 python 文件中并导入变量。当我们需要在后期由前端用户修改它时,最好的做法是什么?
另一个问题是键的某些值是数字。如何自动识别整数或小数并将字符串转换为 int/float?
是否必须将键值对存储在文本文件中?
如果是的话,你已经做过的可能是一种方法。
如果没有,我建议您将其存储为 JSON 文件并将其加载为 python 字典(这种方法也避免了 int 解析问题)。
考虑 pyyaml。它是 json.
的可读性更强的超集
我正在开发一个程序,我需要为其存储用户默认值,并且用户还应该可以选择修改默认值以供将来使用该程序。所以基本上,我有一个模块来管理默认参数和程序的其他方面,这些方面需要存储某些部分并在以后检索。比如管理默认参数,我在一个模块中有一个文件params.py
来管理params.txt
。 python 文件 params.py
本质上包含两个函数:(1) get_default_param(param_name)
和 (2) set_default_param(param_name)
.
params.txt
文件包含以下内容:
NDIV: 120
EXT: txt
UNITS: cm/s2
AM: 1.0, 1.0, 1.0, 1.0
params.py
文件包含:
def get_default_param_values():
default_val = {}
# Get params function
with open("data/defaults/params.csv") as f1:
for line in f1:
split_line = line.split(':')
default_val[split_line[0]] = [x.strip(" ") for x in split_line[1].strip('\n').split(',')]
return default_val
所以在我的 main.py
程序中,我将位于 data
包中 default
文件夹中的 params.py
称为
from data.defaults.params import get_default_param_values
default_values = get_default_param_values()
for i in range(0,1000):
#
# use default_values in the program. These values also gets passed down to other functions
#
如果不修改这些,我可以轻松地将它们放在 python 文件中并导入变量。当我们需要在后期由前端用户修改它时,最好的做法是什么?
另一个问题是键的某些值是数字。如何自动识别整数或小数并将字符串转换为 int/float?
是否必须将键值对存储在文本文件中?
如果是的话,你已经做过的可能是一种方法。
如果没有,我建议您将其存储为 JSON 文件并将其加载为 python 字典(这种方法也避免了 int 解析问题)。
考虑 pyyaml。它是 json.
的可读性更强的超集