You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Python代码实现多CSV合并时添加空行分隔

实现CSV文件合并并在各文件内容间添加空行的方案

嘿,我来帮你搞定这个需求!你的现有代码已经在做CSV合并的基础工作了,要在各个被合并的CSV内容之间加空行其实很简单,核心就是在每写完一个CSV文件的内容后,写入一个空行(注意最后一个文件别加,避免末尾多出来没用的空行)。

下面是具体的实现思路和修改后的代码:

核心思路

直接在文件读写的循环里做手脚:遍历每个CSV文件,把内容写入到最终文件后,除了最后一个文件,额外写入两行换行符(对应空行)。因为你用的是二进制模式读写,所以要写二进制的换行符b'\n\n'。

修改后的完整代码

#!/usr/bin/env python
import glob, os
import shutil

path = r'/Users/sonia/PaleoSkull/Animalsmanage/output'
allFiles = glob.glob(path + "/*.csv")

with open('finaloutput.csv', 'wb') as outfile:
    for i, fname in enumerate(allFiles):
        with open(fname, 'rb') as infile:
            # 把当前CSV的内容复制到最终文件
            shutil.copyfileobj(infile, outfile)
            # 不是最后一个文件的话,写入空行分隔
            if i != len(allFiles) - 1:
                outfile.write(b'\n\n')

额外说明

  • 如果你的CSV文件本身末尾没有换行符,这个写法依然能保证两个文件之间有空行;如果已经有换行,那就是在原有换行基础上再加一个,效果还是空行分隔。
  • 要是你的各个CSV文件都有表头,并且你希望最终文件只保留一份表头,那可以再加个判断:第一个文件完整写入,后续文件跳过第一行再写入,同时依然保留空行分隔的逻辑。比如把shutil.copyfileobj(infile, outfile)替换成:
    if i == 0:
        shutil.copyfileobj(infile, outfile)
    else:
        # 跳过表头行
        next(infile)
        shutil.copyfileobj(infile, outfile)
    

内容的提问来源于stack exchange,提问作者Soniasalme

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:08:04