python 筛选csv文件中含有某个字段的整行数据,并存入新csv文件
时间: 2023-06-18 19:08:00 浏览: 52
假设我们有一个名为`data.csv`的CSV文件,它有以下内容:
```
Name,Age,City
John,25,New York
Mary,30,Los Angeles
Tom,20,Chicago
```
我们想要筛选出包含`New York`的行,并将它们存储到一个新的CSV文件中。
下面是一个实现该功能的Python代码:
``` python
import csv
with open('data.csv', 'r') as csv_file:
csv_reader = csv.DictReader(csv_file)
rows = []
for row in csv_reader:
if 'New York' in row['City']:
rows.append(row)
with open('new_data.csv', 'w', newline='') as new_csv_file:
fieldnames = ['Name', 'Age', 'City']
csv_writer = csv.DictWriter(new_csv_file, fieldnames=fieldnames)
csv_writer.writeheader()
for row in rows:
csv_writer.writerow(row)
```
首先,我们使用`csv.DictReader`打开CSV文件并将其读取为一个字典列表。然后迭代每一行,检查`City`字段是否包含`New York`。如果是,将该行添加到`rows`列表中。
接下来,我们使用`csv.DictWriter`打开一个新的CSV文件,并将`rows`列表中的行写入该文件。我们首先写入一个包含字段名称的标题行,然后迭代每一行,并将其写入CSV文件。
最后,我们使用`newline=''`参数打开新的CSV文件,以避免写入额外的空行。