【问题标题】:Processing many csv files adding metadata in Python处理许多 csv 文件,在 Python 中添加元数据
【发布时间】:2025-12-14 03:50:02
【问题描述】:

我有 20 个文件 csv 看起来:

Value Value2
A       B
C       D
etc.

文件位于三个不同的文件夹中。 2 个在 MI 文件夹中,4 个在 MB 中,其余在 W 中。 我有一个所有路径的列表。我使用该代码来获取它:

import os
for root, dirs, files in os.walk("C:\User\ab"):
    for file in files:
        if file.endswith(".col"):
             print(os.path.join(root, file))

示例路径如下所示:

C:\User\ab\mb\432432\Out\xxxxx.col 
C:\User\ab\mb\787878\Out\xxxxx.col
C:\User\ab\mi\3114\Out\xxxxx.col 
C:\User\ab\w\2312\Out\xxxxx.col 

上面我只包含四个文件的路径,有 20 个。 我需要做什么:

我需要创建一个包含所有上述 DF 的 DF。但是我需要添加带有文件夹名称和示例名称的列(示例名称是目录名称后路径中的数字)。

所以整个 DF 都会有这样的结构:

Value    Value2   Dir   Number
    A       B     MB    432432
    C       D     MB    432432
    G       E     MB    787878
    G       E     MB    787878
    F       O     W      22222
    F       O     W      22222
    etc.

有没有简单的方法来做到这一点?我尝试了很多方法,但我认为我的逻辑不正确。有人可以给我一些建议,我怎样才能快速做到这一点?

【问题讨论】:

    标签: python pandas csv


    【解决方案1】:

    我不确定我是否正确理解了您的问题。 如果您尝试从不同的文件夹中获取文件,并从路径中获取信息,您可以执行以下操作:

    import glob
    
    all_files = glob.glob('C:\User\ab\*\*\Out\*.col')
    
    for file in all_files:
        meta = file.split('\')
        dir = meta[3]
        nmbr = meta[4]
    

    这个 sn-p 搜索相应的文件(注意 glob 允许通配符搜索)。您可以遍历文件并通过拆分路径从路径中提取所需的信息。 之后,您可以打开文件,读取每一行并将相应的信息附加到其中,然后将其保存到新的 csv 文件中。

    【讨论】: