请编写一段从多个csv文件中提取特定列并将他们放入一个新的csv文件中的代码
时间: 2024-01-21 09:17:04 浏览: 64
以下是一个示例代码,可以从多个csv文件中提取特定列,并将它们放入一个新的csv文件中。在这个例子中,我们假设要提取的列名为 "col1" 和 "col2",并且文件名为 "file1.csv","file2.csv","file3.csv"。
```python
import csv
# 列名和文件名
columns = ["col1", "col2"]
files = ["file1.csv", "file2.csv", "file3.csv"]
output_file = "output.csv"
# 打开输出文件,并写入列名
with open(output_file, 'w', newline='') as f_out:
writer = csv.writer(f_out)
writer.writerow(columns)
# 处理每个输入文件
for filename in files:
with open(filename, 'r', newline='') as f_in:
reader = csv.DictReader(f_in)
# 遍历每一行,提取指定列
for row in reader:
output_row = []
for col in columns:
output_row.append(row[col])
# 写入输出文件
writer.writerow(output_row)
```
这段代码使用了 Python 标准库中的 csv 模块,它提供了读写 csv 文件的功能。在代码中,我们首先定义了要提取的列名和文件名,以及输出文件名。然后,我们打开输出文件,并写入列名。
接下来,我们遍历每个输入文件,并使用 csv.DictReader 函数读取文件内容。这个函数可以将 csv 文件转换成一个字典对象,其中每一行被表示为一个字典,字典的键是列名,值是对应的单元格的值。
对于每一行,我们遍历要提取的列名,从字典中获取对应的值,并将它们添加到输出行中。最后,我们使用 csv.writer 函数将输出行写入输出文件中。
请注意,这个示例代码中假设所有的输入文件都具有相同的列名和顺序。如果不是这种情况,你需要进行适当的修改。
阅读全文