发出CSV模块python

时间:2016-02-22 09:51:14

标签: python csv

我创建了一个程序来编写一个简单的.csv(下面的代码):

36111

96

25887

10128

7

398

.csv看起来像这样(中间是空行,但不是问题):

import csv 

with open('agentstatus.csv', 'r') as csvfile:
    f = csv.reader(csvfile)
    for row in f:
        firstvalue = row[0]

现在我正在尝试阅读.csv并将每个数字存储在变量中,但没有成功,请参阅下面的数字36111的示例:

line 6, in <module>
    firstvalue = row[0]
IndexError: list index out of range

然而,我收到错误:

{{1}}
你可以在这里支持我吗?

2 个答案:

答案 0 :(得分:2)

您的文件包含空行,因此您需要检查行的长度:

values = []
for row in f: 
    if len(row) > 0:
        values.append(row[0])

values现在是['36111', '96', '25887', '10128', '7', '398']

答案 1 :(得分:0)

目前,您正在将6行写入csv文件,每行包含一列。要创建包含六列的单行,您需要使用值列表,而不是每个值在其自己的列表中。

即改变

data = [[agents125N], [okstatusN], [warningstatusN], [criticalstatusN], [agentdisabledN], [agentslegacyN]]

data = [[agents125N, okstatusN, warningstatusN, criticalstatusN, agentdisabledN, agentslegacyN]]

(包含一个包含六个值的列表的列表)。用csv.writerows写这个将导致

  

36111,96,25887,10128,7,398

阅读循环中的

row[1]将返回96。