Оптимизация Python: анализ текстового файла для сохранения значений по умолчанию и создания словаря пар ключей в Python - PullRequest
0 голосов
/ 26 января 2019

Я разрабатываю программу, для которой мне нужно хранить значения по умолчанию пользователя, и у пользователя также должна быть возможность изменить значения по умолчанию для будущего использования программы.В общем, у меня есть модуль для управления параметрами по умолчанию и другими аспектами программы, который требует, чтобы определенные части были сохранены и впоследствии извлечены.Например, для управления параметрами по умолчанию у меня есть файл 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

*Файл 1012 * содержит:

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 и импортировать переменную.Что было бы лучше всего сделать, когда нам потребуется изменить его на более позднем этапе пользователем в front-end?

И еще одна проблема заключается в том, что некоторые значения для ключей являются числами.Как автоматически определить целые или десятичные числа и преобразовать строку в int / float?

Ответы [ 2 ]

0 голосов
/ 26 января 2019

Рассмотрим pyyaml ​​. Это более читаемый надмножество json.

0 голосов
/ 26 января 2019

Обязательно ли хранить пары ключ-значение в текстовом файле?

Если да, то, что вы уже сделали, может быть способом сделать это.

Если нет, я бы посоветовал вам сохранить его как файл JSON и загрузить как словарь python (этот подход также устраняет проблему с синтаксическим анализом int).

...