Python 分析文本文件中的数据

Python 分析文本文件中的数据,python,Python,我有一个包含如下数据的txt文件: Kimberly,43,68,176,8 William,42,47,162,15 Dorothy,55,103,160,6 Michael,37,126,133,8,54 ... (4个问题:年龄、身高、体重、运动时间-答案是数字,有些问题的答案超过4个,通过错误日志进行处理,忽略并从计算中删除,错误日志报告的数据包含太多或太少的数据) 我有两件事要做。一种是以以下格式打印每个问题的平均值: Question Average ------------

我有一个包含如下数据的txt文件:

Kimberly,43,68,176,8
William,42,47,162,15
Dorothy,55,103,160,6
Michael,37,126,133,8,54
...
(4个问题:年龄、身高、体重、运动时间-答案是数字,有些问题的答案超过4个,通过错误日志进行处理,忽略并从计算中删除,错误日志报告的数据包含太多或太少的数据)

我有两件事要做。一种是以以下格式打印每个问题的平均值:

Question    Average
-------------------------------
1           Value     etc.
问题是我不知道如何从文本文件的一个“列”中获取数据。我需要忽略第一列中的名称,然后只使用第二列


有人能告诉我怎么做吗?并进行了误差处理;我不太清楚如何做到这一点。

Python标准库中有
csv
模块

>>> import csv
>>> x='''Kimberly,43,68,176,8
... William,42,47,162,15
... Dorothy,55,103,160,6
... Michael,37,126,133,8,54'''
>>> with open("/tmp/a.csv", "w") as fp:
...  fp.write(x)
... 
>>> with open("/tmp/a.csv") as fp:
...   reader = csv.reader(fp)
...   for row in reader:
...     print(row[1])
... 
43
42
55
37

希望这能让你开始。我没有达到格式化或错误检查的要求,但是这个脚本提供了第一行的平均值

如何从一行中获取值的答案是创建一个行列表,然后使用其索引aRow[theIndexOfTheColumnYouWant]访问所需的列。在本例中,第[1]行获取年龄列中的值

import csv

with open('text.txt', 'rb') as myFile:
    # create a csv.reader() object
    reader = csv.reader(myFile)
    # instantiate a list to store the values of the first row in
    secondColumnNums = []
    # loop over the reader object, appending each column two ([1]) value to firstLine
    for line in reader:
        secondColumnNums.append(float(line[1]))
    # add secondColumnNums together and divide by how many numbers there are (the mean)
    theMean = sum(secondColumnNums)/len(secondColumnNums)
    print "The mean of the ages (column two) is {}.".format(theMean)

按照@DynoHongjunFu所说的检查csv标准库模块,使用
csv
库。设置
csv.reader
可以将文件解析为列表(其中每一行都是一个列表),就像上面的一样。然后可以像Python中的正常情况一样对它们进行索引。嘿,谢谢你的回复!如果不导入csv库,我怎么做呢?嘿,谢谢你的回复!但是,我如何在不导入csv库的情况下执行此操作?不客气。:)您是否被禁止导入模块以帮助您完成此操作?如果是这样,请尝试.split()-用逗号分隔每一行,以生成类似于上述内容的列表,然后对其进行迭代。不过,最有效的方法是使用csv模块。