Как использовать текстовый файл для создания словаря? - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь использовать текстовый файл, содержащий словарь, чтобы преобразовать aa из 3-буквенного алфавита в 1-буквенный алфавит, мне нужно открыть этот файл как словарь в моем скрипте Python, но я не могу, это возвращает мне ошибку:

ValueError: элемент последовательности обновления словаря # 0 имеет длину 1; Требуется 2 это мой код:

with open ('test.txt') as file:
for line in file:
 line.replace('\n','').split()
  return dic(file) 

Это мой текстовый файл:

AA_code = dict( [ ["ALA", "A"], ["ARG", "R"], ["ASP", "D"], ["THR", "T"], ["PRO", "P"], ["HIS", "H"], ["SER", "S"], ["TRP", "W"], ["GLY", "G"], ["PHE", "F"], ["GLU", "E"], ["CYS", "C"], ["TYR", "Y"], ["VAL", "V"], ["LYS", "K"], ["GLN", "Q"], ["ASN", "N"], ["LEU", "L"], ["MET", "M"], ["ILE", "I"], ] )

1 Ответ

0 голосов
/ 14 января 2020

Если вы доверяете источнику текстового файла, вы можете сделать что-то подобное, так как его содержимое выглядит как Python код:

def get_aa_codes(filename):
    gbls = {'__builtins__': {'dict': dict}}

    with open(filename) as file:
        exec(file.read(), gbls)

    return gbls['AA_code']


print(get_aa_codes('dict_test.txt'))

Печатные результаты:

{'ALA': 'A', 'ARG': 'R', 'ASP': 'D', 'THR': 'T', 'PRO': 'P', 'HIS': 'H', 'SER': 'S', 'TRP': 'W', 'GLY': 'G', 'PHE': 'F', 'GLU': 'E', 'CYS': 'C', 'TYR': 'Y', 'VAL': 'V', 'LYS': 'K', 'GLN': 'Q', 'ASN': 'N', 'LEU': 'L', 'MET': 'M', 'ILE': 'I'}
...