合并目录下的所有csv文件到一个csv文件中,合并后把原文件删除
时间: 2024-04-12 07:31:00 浏览: 51
要合并目录下的所有 CSV 文件到一个 CSV 文件中,并在合并后将原文件删除,可以使用 Python 的 `os` 和 `csv` 模块。以下是一个示例代码,演示了如何实现这一功能:
```python
import os
import csv
def merge_csv_files(directory, output_file):
# 获取目录下的所有 CSV 文件路径
csv_files = [file for file in os.listdir(directory) if file.endswith('.csv')]
# 打开输出文件,准备写入合并后的数据
with open(output_file, 'w', newline='') as outfile:
writer = csv.writer(outfile)
# 遍历每个 CSV 文件,逐行读取并写入输出文件
for file in csv_files:
file_path = os.path.join(directory, file)
with open(file_path, 'r') as infile:
reader = csv.reader(infile)
for row in reader:
writer.writerow(row)
# 删除原文件
os.remove(file_path)
# 指定目录和输出文件路径
directory = 'path/to/your/csv_files_directory'
output_file = 'path/to/your/output_file.csv'
# 调用函数合并 CSV 文件并删除原文件
merge_csv_files(directory, output_file)
```
在上述代码中,`merge_csv_files` 函数接受一个目录路径和一个输出文件路径作为参数。首先,它使用 `os.listdir` 获取目录下所有以 `.csv` 结尾的文件,并将它们存储在列表 `csv_files` 中。然后,它打开输出文件,并使用 `csv.writer` 准备写入合并后的数据。
接下来,它遍历每个 CSV 文件,使用 `csv.reader` 读取器逐行读取数据,并使用 `csv.writer` 的 `writerow` 方法将每行数据写入输出文件。同时,在每个文件读取完毕后,使用 `os.remove` 删除原文件。
确保将 `directory` 和 `output_file` 替换为你实际的目录和输出文件的路径,以便正确合并和删除文件。
阅读全文