Use Python para selecionar linhas com um determinado intervalo de valores em uma coluna

Eu sei que isso é simples, mas eu sou um novo usuário para Python, então estou tendo um pouco de dificuldade aqui. Eu estou usando o Python 3 pelo caminho.

Eu tenho vários arquivos que se parecem com isso:

NOME DATA AGE SEX COLOR

<code>Name Date Age Sex Color
Ray  May  25.1 M  Gray
Alex Apr  22.3 F  Green
Ann  Jun  15.7 F  Blue
</code>

(Finja que isso é delimitado por tabulações. Devo acrescentar que o arquivo real terá cerca de 3.000 linhas e 17-18 colunas)

O que eu quero fazer é selecionar todas as linhas que tenham um valor na coluna de idade menor que 23.

Neste exemplo, a saída seria:

<code>Name Date Age Sex Color
Alex Apr  22.3 F  Green
Ann  Jun  15.7 F  Blue
</code>

Aqui está o que eu tentei fazer:

<code>f = open("addressbook1.txt",'r')
line = f.readlines()
file_data =[line.split("\t")]
f.close()

for name, date, age, sex, color in file_data:
    if age in line_data < 23:
        g = open("college_age.txt",'a')
        g.write(line)
    else:
        h = open("adult_age.txt",'a')
        h.write(line)
</code>

Agora, idealmente, eu tenho 20-30 desses arquivos de entrada "addressbook" e eu queria que este script passasse por todos eles e adicionasse todas as entradas com menos de 23 anos ao mesmo arquivo de saída ("college_age.txt"). Eu realmente não preciso manter as outras linhas, mas não sei mais o que fazer com elas.

Esse script, quando eu o executo, gera um erro.

<code>AttributeError: 'list' object has no attribute 'split'
</code>

Então eu mudo a terceira linha para:

<code>file_data=[line.split("\t") for line in f.readlines()]
</code>

E isso não me causa mais um erro, mas simplesmente não faz nada. Apenas começa e depois começa.

Qualquer ajuda? :) Lembre-se que sou burro com o Python.

Eu deveria ter acrescentado que meus dados reais têm decimais e não são inteiros. Eu editei os dados acima para refletir isso.

questionAnswers(3)

yourAnswerToTheQuestion