【发布时间】:2016-09-13 10:50:27
【问题描述】:
我在 100 多个文件夹中有 1000 多个文件。我需要将文件夹名称之一写入文件作为列之一。
目录结构:
Data -> 000 -> Trajectory -> set of files
Data -> 001 -> Trajectory -> set of files
Data -> 002 -> Trajectory -> set of files
Data -> 003 -> Trajectory -> set of files
. . .
. . .
. . .
Data -> nnn -> Trajectory -> set of files
每个 Trajectory 文件夹都有 100 多个文件,每个文件都有以下列。每个文件都有一个扩展名.plt
39.984702,116.318417,0,492,39744.1201851852,2008-10-23,02:53:04
39.984683,116.31845,0,492,39744.1202546296,2008-10-23,02:53:10
39.984686,116.318417,0,492,39744.1203125,2008-10-23,02:53:15
39.984688,116.318385,0,492,39744.1203703704,2008-10-23,02:53:20
39.984655,116.318263,0,492,39744.1204282407,2008-10-23,02:53:25
39.984611,116.318026,0,493,39744.1204861111,2008-10-23,02:53:30
我想要将文件夹名称作为列名之一。
预期输出:文件夹中名称为000的文件
000 39.984702,116.318417,0,492,39744.1201851852,2008-10-23,02:53:04
000 39.984683,116.31845,0,492,39744.1202546296,2008-10-23,02:53:10
000 39.984686,116.318417,0,492,39744.1203125,2008-10-23,02:53:15
000 39.984688,116.318385,0,492,39744.1203703704,2008-10-23,02:53:20
000 39.984655,116.318263,0,492,39744.1204282407,2008-10-23,02:53:25
000 39.984611,116.318026,0,493,39744.1204861111,2008-10-23,02:53:30
我在附近找不到任何可以解决的样本。任何建议都会有所帮助。
编辑 1: 正如 @EdChum 关于使用 glob 所建议的那样,但这只能让我找到具有给定扩展名的文件。但我这里的问题是别的。
用更简单的话
rootdir -> subdir_1 -> subdir_2 -> files
将subdir_1 的名称作为col[0] 包含在subdir_2 以及其他列中存在的所有文件中。无需创建新的输出文件即可追加文件。
【问题讨论】:
-
请提供您对该问题的尝试
-
坦率地说,我一直在寻找如何开始,但我还没有看到一个这样的例子可以读取目录名称并将文件作为列之一:(因此问题没有任何代码尝试。
-
你想使用glob然后解析路径得到文件夹名并在加载每个文件后添加一个新列
df['folder_name'] = folder_name,请试一试
标签: python file pandas directory dataset