帮我用python写一个进行csv文件合并的代码: 1.#获取文件夹下所有csv文件的文件名,按照文件名第一个“--”与第二个“--”符号之间的内容进行分组 2.# 遍历每个文件名分组,对该分组包含的文件进行第二列的合并 3.# 将合并后的结果覆盖写入第一个文件中,并删除其他文件
时间: 2023-12-10 21:37:10 浏览: 57
好的,以下是一个示例代码:
```python
import os
import csv
folder_path = "path/to/folder" # CSV文件所在的文件夹路径
# 获取所有CSV文件名
csv_files = [f for f in os.listdir(folder_path) if f.endswith('.csv')]
# 按照文件名第一个“--”与第二个“--”符号之间的内容进行分组
grouped_files = {}
for file_name in csv_files:
start = file_name.find('--') + 2
end = file_name.find('--', start)
group_name = file_name[start:end]
if group_name not in grouped_files:
grouped_files[group_name] = []
grouped_files[group_name].append(file_name)
# 遍历每个文件名分组,对该分组包含的文件进行第二列的合并
for group_name, file_names in grouped_files.items():
if len(file_names) <= 1:
continue
merged_data = []
for file_name in file_names:
with open(os.path.join(folder_path, file_name), newline='') as csv_file:
reader = csv.reader(csv_file)
for row in reader:
if len(merged_data) < len(reader):
merged_data.append(row)
else:
merged_data[reader.line_num - 1][1] += row[1]
os.remove(os.path.join(folder_path, file_name))
# 将合并后的结果覆盖写入第一个文件中
with open(os.path.join(folder_path, file_names[0]), 'w', newline='') as csv_file:
writer = csv.writer(csv_file)
writer.writerows(merged_data)
```
代码中,我们首先获取了给定文件夹下所有的CSV文件名。然后根据文件名中的分组信息将文件分组。接下来遍历每个分组,将分组中的文件按行进行合并,并将合并后的结果写入第一个文件中。最后删除其他文件。
阅读全文