Выбрать нужное значение после запятой в строке

Есть txt файл в котором содержатся подобные строки (их 60+):

grep_req_das: 10, 1, 1, 2
grep_req_says: 12, 3, 1, 30
ПРЕК.req: 20, 3, 1, 20
ПРЕК RI.req: 12, 3, 2, 80
...

И т.д. помогите обработать так, чтобы можно было взять второе, третье или четвертое значение (на выбор) и записать в файл. В итоге, чтобы получилось так, например, если выбрать второе:

grep_req_das: 1
grep_req_says: 3
ПРЕК.req: 3
ПРЕК RI.req: 3

Я использую split, но берётся только первое значение и записывается в файл:

with open('test.txt', 'r') as f:
    with open('test2.txt', 'w') as f1:
        all_str = f.read().splitlines()
        f1.write("%s\n" % all_str[0])
        for el in all_str[1:]:
            split_string = el.split(",", 1)
            substring = split_string[0]
            f1.write("%s\n" % substring)

Вывод:

    grep_req_das: 10
    grep_req_says: 12
    ПРЕК.req: 20
    ПРЕК RI.req: 12

Ответы (2 шт):

Автор решения: Sergei Kirjanov

Разделите сначала по ":", потом по ",", без пределов.

test_string = 'grep_req_says: 12, 3, 1, 30'
key, valuesStr = test_string.split(":")
values = valuesStr.split(",")
print(key + ":" + values[0])
→ Ссылка
Автор решения: Gladius

Вы можете воспользоваться регулярными выражениями:

import re

test_string = 'grep_req_says: 12, 3, 1, 30'

word = re.findall(r'[\D]+', test_string)[0]

number = re.findall(r'[\d]+', test_string)[здесь указываете номер значения, например 2]

print('{}{}'.format(word, number))

Вывод: grep_req_says: 1

Полный код:

import re

with open('test.txt', 'r') as f:
    with open('test2.txt', 'w') as f1:
        for line in f:
            word = re.findall(r'[\D]+', line)[0]
            number = re.findall(r'[\d]+', line)[2]
            f1.write('{}{}\n'.format(word, number))
→ Ссылка