Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python优化:解析文本文件以存储默认值并在Python中创建密钥对字典_Python_Text_Text Parsing - Fatal编程技术网

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

Python优化:解析文本文件以存储默认值并在Python中创建密钥对字典,python,text,text-parsing,Python,Text,Text Parsing,我正在开发一个程序,我需要为其存储用户默认值,并且用户还应该可以选择修改默认值,以便将来使用该程序。所以基本上,我有一个模块来管理默认参数和程序的其他方面,需要存储某些部分,然后再检索。例如,为了管理默认参数,我在一个模块中有一个文件params.py,用于管理params.txt。python文件params.py基本上包含两个函数:(1)get\u default\u param(param\u name)和(2)set\u default\u param(param\u name) par

我正在开发一个程序,我需要为其存储用户默认值,并且用户还应该可以选择修改默认值,以便将来使用该程序。所以基本上,我有一个模块来管理默认参数和程序的其他方面,需要存储某些部分,然后再检索。例如,为了管理默认参数,我在一个模块中有一个文件
params.py
,用于管理
params.txt
。python文件
params.py
基本上包含两个函数:(1)
get\u default\u param(param\u name)
和(2)
set\u default\u param(param\u 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
调用为

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解析问题)。

请考虑。这是一个更具可读性的json超集。

谢谢你的提示。我不需要将它们存储在文本文件中。我只需要一个有效的方式来存储,编辑和检索。我从来没用过泡菜。让我也试试吧!我要说的是使用JSON文件。pickle存储为二进制,不能根据您的用例进行修改。当我再次阅读你的问题时,我意识到了这一点。