我在这里尝试将值递增到4个字典(字典是di_A1,di_A2,di_B1,di_B2)。
我正在检查文件中位置3-9的行,其中3-9是父母的名字,11是性别,12-14是年龄。
位置11将始终是1或2.1。1-男性,2-女性。位置12-14将包含一个从001 > 150表示年龄的数字。
这些字符中的第一个决定"parent“是否应该保存到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岁,等等。
https://stackoverflow.com/questions/47624723
复制相似问题