我想在这里将值增加到4个字典(字典是di_A1,di_A2,di_B1,di_B2)。
我正在检查父级名字3-9位的档案中的行,然后是性别的11位,以及年龄的12-14岁。
位置11将始终为1或2. 1 - 男性,2位女性。 位置12-14将包含001> 1的数字。年龄150岁。
这些字符中的第一个确定"父母"应该保存到A或B字典。其余3个值确定父母的年龄,分为50岁以上的值。
字典:
di_A1存储爸爸的名字,低于50;
di_A2存储爸爸的名字,超过50;
di_B1存储妈妈的名字,低于50;
di_B2存储妈妈的名字,超过50;
稍后我将这些打印到这5列中的.csv文件中:
名字
50岁或以下的父亲数
爸爸50岁或以上的人数50岁或以下妈妈的数量
妈妈50或以上的数量
我将它们保存到字典中的第一篇文章无效。当我检查破损的年龄值时,我想是的。
def main():
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岁等。
答案 0 :(得分:0)
......好吧,事实证明,我在文件路径中输入了一个拼写错误。 (令人尴尬,因为我整天都在排除故障......)
该程序的工作原理如上所示。