使用Python检查CSV的每一行中特定列的值

时间:2015-05-29 18:57:16

标签: python csv python-3.x

为简单起见,使用如下数据:

Name,Age,Height
Joe,14,65
Sam,18,74
Sarah,21,62

我想浏览文件的每一行,将Age列与某个值进行比较(例如:16)。如果该值小于固定值,我想删除该行。

在这个例子中,我将留下以下数据:

Name,Age,Height
Sam,18,74
Sarah,21,62

提前致谢!

3 个答案:

答案 0 :(得分:1)

f = open('myfile.csv', 'r')
g = open('mynewfile.csv','w')

for line in f:
  if int(line.split(",")[1]) != FIXED_VALUE:
    g.write(line)

f.close()
g.close()

对于这样一个简单的用例,我不会使用外部的csv库。

*代码未经过测试

答案 1 :(得分:0)

这是一个使用csv模块的基本示例。它创建一个新文件而不是标准数据。

#!/usr/bin/python

import csv

infile = 'input.csv'
outfile = 'output.csv'

wfh = open(outfile, 'w')

with open(infile, 'r') as fh:

    reader = csv.DictReader(fh, delimiter=',')

    for row in reader:
        name = row['Name']
        age = row['Age']
        height = row['Height']

    if age >= 16:
        wfh.write("{},{},{}".format(name, age, height))

wfh.close()

答案 2 :(得分:0)

f = open("file.csv","r")

    lines=f.readlines()

f.close()

    f = open("file.csv","w")

for line in lines:
   if int(line.split(",")[1]) >= 16:
        f.write(line)
f.close()