如何在csv文件中搜索特定字段,然后在Python中打印整行

时间:2016-05-01 01:06:57

标签: python python-2.7 csv

我会包括我的整个程序,但它太长了所以我会提供一个例子:

说我有这个csv文件:

John, 23, 1944, Africa
Fred, 45, 1922, China
Bob, 23, 1999, Japan

如何搜索文件并打印1944具体所在的行? 基本上我想要它做的是找到1944,然后打印整行1944年。

另外,如果它的结构类似

Name, Age, Year, Nation
John, 23, 1944, Africa
Fred, 45, 1922, China
Bob, 23, 1999, Japan

您如何打印找到的行以及顶行?

非常感谢。

编辑: 为什么需要进行投票?我合法地找不到任何关于此的信息。因此我不得不问。

1 个答案:

答案 0 :(得分:0)

这个程序回答了你的第一个问题:

import csv
import sys

with open('csv1.txt') as fp:
    reader = csv.reader(fp, skipinitialspace=True)
    writer = csv.writer(sys.stdout)
    writer.writerows(row for row in reader if row[2] == '1944')

这回答了你的第二个问题:

import csv
import sys

with open('csv2.txt') as fp:
    top_row = next(fp)
    sys.stdout.write(top_row)
    reader = csv.reader(fp, skipinitialspace=True)
    writer = csv.writer(sys.stdout)
    writer.writerows(row for row in reader if row[2] == '1944')