浏览目录路径

3

我正在尝试列出所有目录(在 /home/ 目录下一级),以及它们的内容。这段代码可以工作,但是当我将字典转换为 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

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

2

我不确定您的最终目标应该是什么,但是os.walk会为您完成完整的递归!无需在第二个循环中迭代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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接