python实现读取csv文件指定列,并保存到一个新文件中
时间: 2023-08-14 09:04:13 浏览: 124
以下是一个Python实现的读取CSV文件指定列,并保存到一个新文件中的案例:
假设我们有一个名为“data.csv”的CSV文件,其中包含以下数据:
```
id,name,age,gender
1,Alice,25,Female
2,Bob,30,Male
3,Charlie,40,Male
4,Dave,35,Male
5,Emily,27,Female
```
现在我们想要读取“name”和“gender”列,并将它们保存到一个新的CSV文件中。
```python
import csv
# 源文件路径
input_file = 'data.csv'
# 输出文件路径
output_file = 'output.csv'
# 要读取的列
columns_to_keep = ['name', 'gender']
# 打开源文件和输出文件
with open(input_file, 'r') as f_in, open(output_file, 'w', newline='') as f_out:
# 使用csv模块读取csv文件
reader = csv.DictReader(f_in)
# 使用csv模块写入csv文件
writer = csv.DictWriter(f_out, fieldnames=columns_to_keep)
# 写入标题行
writer.writeheader()
# 遍历源文件中的每一行数据
for row in reader:
# 创建一个新的字典,仅包含要保留的列
new_row = {col: row[col] for col in columns_to_keep}
# 将新行写入输出文件
writer.writerow(new_row)
```
这个程序会读取“data.csv”文件中的数据,并将“name”和“gender”列保存到“output.csv”文件中。输出文件中的数据如下:
```
name,gender
Alice,Female
Bob,Male
Charlie,Male
Dave,Male
Emily,Female
```
注意,我们使用了`csv.DictReader`和`csv.DictWriter`来读取和写入CSV文件。这两个类允许我们使用列名来引用数据,而不是使用列索引。这使得代码更易于阅读和维护。同时,我们使用了字典推导式来创建一个新的字典,仅包含要保留的列。最后,我们使用`writer.writerow`方法将新行写入输出文件。
阅读全文