从txt文件创建表和min的计算

时间:2013-10-23 20:08:38

标签: python

我要求用户提交一个txt文件进行评估,然后我需要设置一个表并计算某些东西(最大值,最小值,总和等),我在哪里难倒,是如何设置表我是打印以及如何根据列规范找到最大值,最小值和总和。

到目前为止我的代码----

def main():    
    my_list = [[float(i) for i in line.split(',')] for line in open("Alpha.txt")]
    print(my_list)
    my_list_one = my_list[0]
    my_list_two = my_list[1]
    my_list_three = my_list[2]
    my_list_four = my_list[3]


main()

所有这一切都是读取Alpha.txt文件并将数据行分成单独的列表。 我正在努力做的就是把它们放在一张桌子里......

-----------------------------------------------
|     |   A   |   B   |   C   |   D   |   E   |
-----------------------------------------------
|   1 | 5.00  | 2.00  | 6.00  | 4.00  | 5.00  |
|   2 | 3.00  | 7.00  | 8.00  | 7.00  | 9.00  |
|   3 | 1.10  | 2.20  | 5.80  | 0.10  | 1.30  |
-----------------------------------------------

表格格式化,我只会使用基本的字符串格式,如

my_str = "| {:>12.10f} | {:^3d} | {:>12d} |".format(10**(-i), i, 10**i)

此外,我不确定如何获取用户提交的lette,ex A并计算5.00,3.00和1.00的最小值,除非我根据列或行为每个可能的选择创建if else。

感谢任何帮助!

我当前的程序会打印出来

[[1.2, 4.3, 7.0, 0.0], [3.0, 5.0, 8.2, 9.0], [4.0, 3.0, 8.0, 5.6], [8.0, 4.0, 3.0, 7.4]]

1 个答案:

答案 0 :(得分:0)

与其他人提到的一样,Pandas是一个很好的数据库分析库。然而,熊猫有一点学习曲线。您可以使用CSV文件和基础csv读取库(csv library documentation)以更简单的方式解决您的情况。

csv阅读的例子

以下是如何阅读基本csv文件的演示:

让我们创建一个基本的CSV文件,并将其放在与后面的代码相同的目录中。 如果您使用文本编辑器打开csv文件,它将如下所示:

data1,data2
1,6
2,7
3,8
4,9
5,10

现在让我们创建一些函数,用于读取CSV然后执行您希望完成的操作:

def read_csv_file():
    import csv, os
    this_dir = os.path.abspath(os.path.dirname(__file__))
    csv_file = this_dir+"/sample_data.csv"
    data1_list=[]
    data2_list=[]
    with open(csv_file, 'rb') as csvfile:
        csv_reader = csv.DictReader(csvfile, dialect= 'excel')
        print "1st data row:"
        for csv_row in csv_reader:
            data1_list.append(csv_row["data1"])
            print csv_row["data1"]
            data2_list.append(csv_row["data2"])
    return data1_list, data2_list

def calculate_min(data1):
    from operator import itemgetter
    minimum_data1=min(enumerate(data1), key=itemgetter(1))[1]
    max_data1=max(enumerate(data1), key=itemgetter(1))[1]
    print "the min of the set was: %s"%minimum_data1
    print "the max of the set was: %s"%max_data1

然后你可以在主文件中使用这两个函数:

data1, data2 = read_csv_file()
calculate_min(data1)

你会得到这个输出:

1st data row:
1
2
3
4
5
the min of the set was: 1
the max of the set was: 5

如果您希望进行其他操作,最好查看是否有已经执行此操作的库,否则请手动执行。

我希望这有帮助!

- 彼得