如何访问for循环csv python中的某些列值

如何访问for循环csv python中的某些列值,python,csv,Python,Csv,这是我的csv文件: a,b,c,d,e, 0,100,0,0,0 0,1500,0,0,0 0,2350,0,0,0 0,3700,0,0,0 0,5060,0,0,0 还有我的python代码: import csv, os, sys y = int(sys.argv[1]) with open("csvinput.csv", 'rb') as input, open('temp.csv', 'wb') as output: reader = csv.reader(inp

这是我的csv文件:

a,b,c,d,e,
0,100,0,0,0
0,1500,0,0,0
0,2350,0,0,0
0,3700,0,0,0
0,5060,0,0,0
还有我的python代码:

import csv, os, sys
y = int(sys.argv[1])

with open("csvinput.csv", 'rb') as input, open('temp.csv', 'wb') as output:
        reader = csv.reader(input, delimiter = ',')
        writer = csv.writer(output, delimiter = ',')

        all = []
        header = next(reader)
        header.insert(0, 'ID')
        all.append(header)
        count = 0
        del header[1]
        del header[-1]
        for row in reader:
                kount = row[1]
                count += 1
                while y<kount:
                        del row[0]
                        del row[-1]
                        all.append(row)
                        row.insert(0, count)
                        break
        writer.writerows(all)
因此y参数(sys.argv[1])将是基于b值的行数上限。因此,如果第四行是3700,我输入4000,它将打印所有行,直到3700是最后一行(因为5060大于4000)


现在的问题是kount不起作用了。我无法访问b列的值。

您需要将列
b
的值转换为整数,以便能够进行比较,即将
y
int(kount)
进行比较。这是可行的(为了清晰起见,稍微重写代码):



编辑:您的代码还将生成一个csv,其中b>y,与您试图实现的相反。它以一种有趣的方式删除了列i,在标题中留下5列,在正文中留下4列

您不是以列表的形式访问数据,而是以字符串的形式访问数据(您将2000与python计算结果小于的“,”进行比较)。您需要执行类似于
kount=int(row.split(',')[1])
或(可能?)
kount=eval(row)[1]
谢谢您这正是我想要的。对不起,我忘记了第一个代码中的一些东西,它们可能没有意义,比如del和counts以及ID。
a,b,c,d,e,
0,100,0,0,0
0,1500,0,0,0
import csv, os, sys
y = int(sys.argv[1])

with open("csvinput.csv", 'rb') as input, open('temp.csv', 'wb') as output:
        reader = csv.reader(input, delimiter = ',')
        writer = csv.writer(output, delimiter = ',')

        header = next(reader)
        outdata = []
        outdata.append(header)

        for row in reader:
                kount = int(row[1])
                if y > kount:
                        outdata.append(row)

        writer.writerows(outdata)