У меня проблемы с отображением правильного именованного захвата в моей функции словаря.Моя программа читает файл .txt, а затем преобразует текст в этом файле в словарь.У меня уже есть правильная формула регулярного выражения, чтобы захватить их.
Вот мой File.txt:
file Science/Chemistry/Quantum 444 1
file Marvel/CaptainAmerica 342 0
file DC/JusticeLeague/Superman 300 0
file Math 333 0
file Biology 224 1
Вот ссылка regex , которая может захватить те, которые я хочу:
Byпри просмотре ссылки, которую я хочу отобразить, подсвечивается зеленым и оранжевым.
Эта часть моего кода работает:
rx= re.compile(r'file (?P<path>.*?)( |\/.*?)? (?P<views>\d+).+')
i = sub_pattern.match(data) # 'data' is from the .txt file
x = (i.group(1), i.group(3))
print(x)
Но так как я превращаю .txt в словарь, я не мог понять, как создать .group (1) или.Группа (3) в качестве клавиш для отображения специально для моей функции отображения.Я не знаю, как заставить эти группы отображаться, когда я использую print("Title: %s | Number: %s" % (key[1], key[3]))
, и он будет отображать это содержимое.Я надеюсь, что кто-то может помочь мне реализовать это в моей функции словаря.
Вот моя функция словаря:
def create_dict(data):
dictionary = {}
for line in data:
line_pattern = re.findall(r'file (?P<path>.*?)( |\/.*?)? (?P<views>\d+).+', line)
dictionary[line] = line_pattern
content = dictionary[line]
print(content)
return dictionary
Я пытаюсь сделать мой вывод похожим на это из моего текстового файла:
Science 444
Marvel 342
DC 300
Math 333
Biology 224