繁体   English   中英

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

[英]How do I search for a specific field in a csv file then print the entire row in Python

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

假设我有这个 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

你将如何打印找到的行加上顶行?

非常感谢。

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

该程序回答您的第一个问题:

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')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM