我知道这很简单,但我是 Python 的新用户,所以我在这里遇到了一些麻烦。顺便说一句,我正在使用 Python 3。
我有多个看起来像这样的文件:
姓名 日期 年龄 性别 颜色
Name Date Age Sex Color
Ray May 25.1 M Gray
Alex Apr 22.3 F Green
Ann Jun 15.7 F Blue
(假设这是制表符分隔的。我应该补充一点,真实文件将有大约 3,000 行和 17-18 列)
我想要做的是选择年龄列中值小于 23 的所有行。
在此示例中,输出将是:
Name Date Age Sex Color
Alex Apr 22.3 F Green
Ann Jun 15.7 F Blue
这是我试图做的:
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)
现在,理想情况下,我有 20-30 个这样的“地址簿”输入文件,我希望这个脚本循环遍历它们并将所有年龄低于 23 岁的条目添加到同一个输出文件(“college_age.txt”)中。我真的不需要保留其他线路,但我不知道还能用它们做什么。
这个脚本,当我运行它时,会产生一个错误。
AttributeError: 'list' object has no attribute 'split'
然后我将第三行更改为:
file_data=[line.split("\t") for line in f.readlines()]
它不再给我一个错误,而是根本什么都不做。它只是开始然后开始。
有什么帮助吗?:) 记住我对 Python 很笨。
我应该补充一点,我的实际数据是小数而不是整数。我已经编辑了上面的数据以反映这一点。