Python重复CSV文件

时间:2012-07-16 06:20:22

标签: python list loops if-statement

我正在尝试从CSV文件加载数值数据,以便分别遍历每个库存(文件)的计算数据,并确定计算的值是否大于特定数字(在这种情况下为731)。但是,我使用的方法似乎使Python重复列表以及在数字('500')周围添加引号,作为示例,使它们成为字符串。不幸的是,我认为最终的“if”语句无法处理这个问题,因此它似乎没有正常运行。我不确定发生了什么以及为什么我需要做Python以使这些代码正常运行。

    import csv
    stocks = ['JPM','PG','GOOG','KO']
    for stock in stocks:
        Data = open("%sMin.csv" % (stock), 'r')
        stockdata = []
        for row in Data:
           stockdata.extend(map(float, row.strip().split(',')))
           stockdata.append(row.strip().split(',')[0])
        if any(x > 731 for x in stockdata):
            print "%s Minimum" % (stock)

1 个答案:

答案 0 :(得分:1)

目前您要将每行的所有列添加到列表中,然后再添加到该行的第一列?所有列都是重要的,还是只是第一个?

您还要在比较之前加载文件中的所有数据,但似乎没有在任何地方使用它,所以我猜您可以提前快捷方式...

如果我理解正确,您的代码应为此(或修改为仅比较第一列)。

你基本上是在写这个吗?

import csv

STOCKS = ['JPM', 'PG', 'GOOG', 'KO']

for stock in STOCKS:
    with open('{}Min.csv'.format(stock)) as csvin:
        for row in csv.reader(csvin):
            if any(col > 731 for col in map(float, row)):
                print '{} minimum'.format(stock)
                break