Я пытаюсь увеличить значения до 4 словарей здесь (словарь di_A1, di_A2, di_B1, di_B2).
Я проверяю строки в файле на позициях 3-9 для имени родителя, затем позиции 11 для пола и позиции 12-14 для возраста.
Позиция 11 всегда будет 1 или 2. 1 - мужчина, 2 - женщина. Позиции 12-14 будут содержать число от 001 > 150 для возраста.
Первый из этих символов определяет, следует ли сохранить «родительский» словарь в словарь A или B. Остальные 3 значения определяют возраст родителя, которые группируются в значения старше или младше 50 лет.
словари:
di_A1 хранит имена пап до 50;
di_A2 хранит имена пап, более 50;
di_B1 хранит имена мам до 50;
di_B2 хранит имена мам, более 50;
Позже я печатаю их в файл .csv в этих 5 столбцах:
Имя
количество отцов 50 или младше
количество отцов 50 и старше
количество мам 50 или младше
количество мам 50 и старше
Самая первая часть, где я сохраняю их в словарь, не работает. Я думаю, что когда я проверяю значение возраста, которое нарушается.
деф основной():
import re # I use this later, but maybe I should be using it here?
# find all files to check
filelist = glob.glob("FOLDER/subfolder/names*/*.TXT")
di_A1 = {}
di_A2 = {}
di_B1 = {}
di_B2 = {}
for file in filelist:
infile = open(file,"r")
for line in infile:
sex_age = int(line[10:14]) #11 stores sex, 12-14 store age
firstname = line[2:9] # 3-9 store first name
if (sex_age < 1051) : #if male 50 or under
di_A1[firstname] = di_A1.get(firstname,0) + 1
elif (sex_age < 1150) : #if male 50 or over
di_A2[firstname] = di_A2.get(firstname,0) + 1
elif (sex_age < 2051) : #if female 50 or under
di_B1[firstname] = di_B1.get(firstname,0) + 1
elif (sex_age < 2150) : #if female 50 or over
di_B2[firstname] = bi_B2.get(firstname,0) + 1
infile.close()
больше после этого, но я уверен, что все работает
Сейчас ничего не сохраняется ни в одном из словарей. Что я делаю не так?
Должен отметить, что я думал разбить это число на большее количество возрастных групп — 20 лет и младше, 21–35 лет, 36–45 лет, 46–55 лет, 56–65 лет и т. д.