python - 将不同子文件夹中具有相同名称的 csv 文件合并为一个 csv

标签 python pandas dataframe glob data-analysis

我有三个 CSV 文件,每个文件对应多个文件的特定文件名。假设总共有 20 个文件名,因此三个不同的文件夹中总共有 20* 3csv 文件。

Folder A- 1001.CSV,1002.CSV,1003.CSV...
Folder B-1001.CSV,1002.CSV,1003.CSV
Folder C-1001.csv,1002.csv,1003.csv......

我想为每个 1001,1002,1003,1004..... 获取一个 CSV 文件 总共 20 个 csv 文件

我该怎么做?由于文件位于不同的文件夹中,glob 不起作用(或者我不知道如何)

最佳答案

我做了以下假设:

  • 所有子文件夹都将以某个已知目录“parentdir”为根目录
  • 每个子文件夹仅包含相关的 csv 文件
  • csv 文件不包含任何页眉/页脚行
  • csv 文件中的每条记录均以换行符分隔
  • 每个文件中的所有记录都是相关的

这应该在每个子文件夹中生成一个“concat.csv”文件,其中包含同一文件夹中所有其他文件的内容。我使用了 this other answer on stackoverflow 中的一段代码用于实际连接文件。

import os
import fileinput

rootdir = 'C:\\Users\\myname\\Desktop\\parentdir'
os.chdir(rootdir)
children = os.listdir()
for i in children:
    path = os.path.join(rootdir, i)
    os.chdir(path)
    filenames = os.listdir()
    with open('concat.csv', 'w') as fout, fileinput.input(filenames) as fin:
        for line in fin:
            fout.write(line + '\n')

关于python - 将不同子文件夹中具有相同名称的 csv 文件合并为一个 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55549290/

相关文章:

python - 想要了解 Spark Streaming 的工作原理吗?

python - 定义不同形式的 argparse 参数输入

python - 使用滚动标准差检测 Pandas 数据框中的异常值

python - dask read_sql从MYSQL查询时出错

python打印转义反斜杠

python - Pandas Pivot with Strings-ValueError : Index contains duplicate entries, 无法 reshape

python - python 中的字典列表作为 HTML 表格式

python - Pandas :选择带有unicode字符的字符串

python - 如何使用正则表达式捕获 python 中两个连字符之间的单词?

python - 从 DataFrame 创建直方图(其中索引值是变量)