遍历目录路径

时间:2016-12-24 09:29:05

标签: python pandas

我正在尝试列出所有目录(/ home / dir下面的一个级别)及其内容。此代码正常工作,但是当我将字典转换为pandas数据帧时,目录名称与文件名不匹配。

mypath='/home/'
from os import walk

myd=dict()
for (dirpath, dirnames, filenames) in walk(mypath):
    for i in dirnames:
        for (dirpath1, dirnames1, filenames1) in walk(i):
            myd[i]=','.join(filenames1)


import pandas as pd
df=pd.DataFrame(myd , index=[0]).T
df.columns=['files']

pd.set_option('max_colwidth', 800)
df

有没有更好的方法来构建包含目录及其文件内容的2列数据框?

1 个答案:

答案 0 :(得分:2)

我不确定你的最终结果应该是什么样的,但是frequency conversion会为你做完整的递归!没有必要在第二个循环中迭代dirnames

import os

mypath = '/home/'

myd = {}
for (here, dirs, files) in os.walk(mypath):
    for file in files:
        myd[here] = '.'.join(files)

print(myd)

这是python 3代码;它python 2 file是一个关键字,不应该用作变量名......

<强>更新

如果您只需要输入目录下一级,则无需walk

myd = {}
for name in os.listdir(mypath):
    subdir = os.path.join(mypath, name)
    if not os.path.isdir(subdir):
        continue
    myd[name] = '.'.join(os.listdir(subdir))

print(myd)