我的csv文件有20个:
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.
有没有简单的方法可以做到这一点?我尝试了很多方法,但是我认为我的逻辑不正确。有人可以给我一些建议,我该如何快速地做到这一点?
答案 0 :(得分: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]
此代码段搜索相应的文件(请注意,glob
允许通配符搜索)。然后,您可以遍历文件并通过拆分从路径中提取所需的信息。
然后,您可以打开文件,读取每一行并将相应的信息附加到该行,然后将其保存到新的csv文件中。