Użyj Pythona, aby wybrać wiersze o określonym zakresie wartości w jednej kolumnie
Wiem, że to proste, ale jestem nowym użytkownikiem Pythona, więc mam tutaj trochę problemów. Swoją drogą używam Pythona 3.
Mam wiele plików, które wyglądają mniej więcej tak:
NAZWA DATA WIEK KOLOR SEKSU
<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>
(Udawaj, że jest to rozdzielone tabulatorami. Powinienem dodać, że prawdziwy plik będzie miał około 3000 wierszy i 17-18 kolumn)
Chcę wybrać wszystkie wiersze, które mają wartość w kolumnie wieku, która jest mniejsza niż 23.
W tym przykładzie dane wyjściowe będą następujące:
<code>Name Date Age Sex Color Alex Apr 22.3 F Green Ann Jun 15.7 F Blue </code>
Oto, co próbowałem zrobić:
<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>
Teraz, najlepiej, mam 20-30 plików wejściowych „książki adresowej” i chciałem, aby ten skrypt przechodził przez wszystkie i dodawał wszystkie wpisy o wieku poniżej 23 lat do tego samego pliku wyjściowego („college_age.txt”). Naprawdę nie muszę trzymać innych linii, ale nie wiedziałem, co z nimi zrobić.
Ten skrypt, gdy go uruchomię, generuje błąd.
<code>AttributeError: 'list' object has no attribute 'split' </code>
Następnie zmieniam trzecią linię na:
<code>file_data=[line.split("\t") for line in f.readlines()] </code>
I nie daje mi już błędu, ale po prostu nic nie robi. Po prostu się zaczyna i zaczyna.
Jakaś pomoc? :) Pamiętaj, że jestem głupi w Pythonie.
Powinienem dodać, że moje rzeczywiste dane mają liczby dziesiętne i nie są liczbami całkowitymi. Zmodyfikowałem powyższe dane, aby to odzwierciedlić.