簡體   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