将多个csv文件进行合并
时间: 2023-08-05 16:02:59 浏览: 86
您可以使用 Python 的 csv 模块来合并多个 CSV 文件。下面是一个简单的示例代码,假设您要合并名为 file1.csv、file2.csv 和 file3.csv 的三个文件:
```python
import csv
import os
# 定义要合并的文件列表
file_list = ['file1.csv', 'file2.csv', 'file3.csv']
# 定义要写入的文件名
output_file = 'merged.csv'
# 遍历文件列表,逐个读取并写入到输出文件中
with open(output_file, 'w', newline='') as f_out:
writer = csv.writer(f_out)
for file_name in file_list:
with open(file_name, 'r', newline='') as f_in:
reader = csv.reader(f_in)
for row in reader:
writer.writerow(row)
```
在上面的代码中,我们首先定义了要合并的文件列表 `file_list` 和输出文件名 `output_file`。然后,我们使用 `with` 语句逐个读取文件并将它们写入到输出文件中。其中,`csv.reader` 函数用于读取 CSV 文件,`csv.writer` 函数用于写入 CSV 文件。注意,`newline=''` 参数用于避免写入空行。
如果您的 CSV 文件中包含标题行,可以在读取第一个文件之前先写入标题行。例如:
```python
header_written = False
with open(output_file, 'w', newline='') as f_out:
writer = csv.writer(f_out)
for file_name in file_list:
with open(file_name, 'r', newline='') as f_in:
reader = csv.reader(f_in)
for row in reader:
if not header_written:
writer.writerow(['header1', 'header2', 'header3'])
header_written = True
writer.writerow(row)
```
在上面的代码中,我们使用一个变量 `header_written` 来记录是否已经写入过标题行。如果 `header_written` 为 `False`,则在写入第一个文件之前先写入标题行。
阅读全文