Интерпретация значений из словаря python в виде команды, а не строки - PullRequest
0 голосов
/ 10 марта 2020

У меня есть два python скрипта, в которых некоторые переменные являются общими для обоих скриптов. В целях обеспечения целостности (например, изменение одной переменной в одном скрипте, но не в другом), я решил создать файл свойств, в котором я буду хранить эти переменные. Поэтому я планирую загрузить файл свойств из обоих сценариев и извлечь нужные мне переменные, используя простой синтаксис словаря.

Мой файл свойств propPostPipeline.txt выглядит так:

nexuses=nexus nexusb.split()
novaseq_runsFinder=re.compile(r'XX$')
prefixesFastQOnly=ULB-CB None none Genome RNA.split()

Затем я преобразую этот .txt файл в python словарь, следуя инструкциям в этом ответе (ответ от mvallebr)

with open('/path/to/my/propPostPipeline.txt') as f:
    l = [line.split("=") for line in f.readlines()]
    d_prop = {key.strip(): value.strip() for key, value in l}

Мой d_prop фактически является толковый словарь. Дело в том, что значения просто типа str, хотя я хотел, чтобы они интерпретировались как они. Например, если я сделаю d_prop['nexuses'], я получу 'nexus nexusb.split()', в то время как я хотел, чтобы python действительно интерпретировал значение как то, что говорит команда, а не как строку, т.е. чтобы иметь ['nexus', 'nexusb']. То же самое для d_prop['novaseq_runsFinder']: я хотел иметь тип re.Pattern, а не str.

...