python,将两个文件夹中名字一样的csv合并,如果第一个csv为空则只合成第二个csv第一个文件夹中的csv的文字在前,合成的csv名字延用两个文件夹的csv名字
时间: 2024-12-26 10:21:53 浏览: 5
在Python中,你可以使用pandas库来进行这样的CSV文件合并操作。这里是一个简单的步骤描述:
1. 首先,你需要导入`pandas`模块以及`os`模块用于处理文件和目录操作。
```python
import pandas as pd
import os
```
2. 定义一个函数,这个函数接收两个文件夹路径作为输入,并遍历每个文件夹寻找同名的CSV文件。
```python
def merge_csvs(folder1, folder2):
# 获取两个文件夹下的所有csv文件名
csv_files1 = [f for f in os.listdir(folder1) if f.endswith('.csv')]
csv_files2 = [f for f in os.listdir(folder2) if f.endswith('.csv')]
merged_files = []
# 对于每个同名文件,尝试读取并合并
for file_name in set(csv_files1).intersection(csv_files2):
df1 = pd.read_csv(os.path.join(folder1, file_name))
df2 = pd.read_csv(os.path.join(folder2, file_name))
# 如果df1为空,就直接使用df2,否则将df1放在df2前面
if df1.empty:
merged_df = df2
else:
merged_df = pd.concat([df1, df2], ignore_index=True)
# 写入新的合并后的CSV文件
output_path = os.path.join(folder1, 'merged_' + file_name)
merged_df.to_csv(output_path, index=False)
```
3. 调用这个函数,传入你要合并的两个文件夹的路径。
```python
merge_csvs('folder1_path', 'folder2_path')
```
这个函数会检查每个文件夹是否存在同名的CSV文件,如果第一个文件夹的文件为空,它将只保留第二个文件夹的文件内容。合并后的CSV文件将保存在第一个文件夹中,文件名为原文件加上"merged_"前缀。
阅读全文