Python优化:解析文本文件以存储默认值并在python中创建密钥对字典

时间:2019-01-26 15:15:22

标签: python text text-parsing

我正在开发一个程序,我需要为其存储用户默认值,并且用户还应该可以选择修改默认值,以供将来使用该程序。因此,基本上,我有一个模块来管理默认参数和程序的其他方面,这些方面需要存储和稍后检索某些部分。例如,要管理默认参数,我在模块中有文件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程序中,我将位于params.py文件夹内data包中的default称为

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?

2 个答案:

答案 0 :(得分:3)

是否必须将键值对存储在文本文件中?

如果是,则您已经完成的操作可能是一种方法。

如果没有,我建议您将其存储为JSON文件并将其作为python字典加载(此方法还可以避免int解析问题)。

答案 1 :(得分:1)

考虑pyyaml。这是json更具可读性的超集。