扫描和打印目录,子目录和档

时间:2015-07-01 10:34:09

标签: python python-2.7 subdirectory

我正在尝试使用Python转换HTML中的目录和子目录的嵌套视图。例如:

- dir
- dir
- dir
  - subdir
    - subdir
    - subdir
      - subdir
  - subdir
- dir
  - subdir
    - subdir
  - subdir

我的Python代码:

dirs = []

for dirName, subdirList, fileList in os.walk(disk):
    dirs.append(dirName)

数组dirs已成功创建并填充,但我想将此数组转换为嵌套的HTML <ul>标记。

count = 0

for i in dirs:
    if count > 0:
        if dirs[count -1] in i:
            html += '<ul><li>' + i + '</li></ul>'
            previous = i
        else:
            html += '<li>' + i + '</li>'
    else:
        html += '<li>' + i + '</li>'

    count = count + 1

但是如何将dir / subdir视图示例放入嵌套的HTML <ul>标记中,并使用嵌套项?

2 个答案:

答案 0 :(得分:0)

我相信使用os.lisdir()os.path.isdir()以及递归函数来创建所需的html会更容易,而不是使用os.walk()

示例 -

import os
import os.path
def createHTML(d):
    res = '<ul>'
    lds = os.listdir(d)
    for l in lds:
            if os.path.isdir(os.path.join(d,l)):
                    res += '<li>' + l
                    res += createHTML(os.path.join(d,l))
                    res += '</li>'
    res += '</ul>'
    return res

当我运行上述内容时,在我的一个目录中,我得到了 -

  • 共享
    • PKG
      • __ pycache __
  • __ pycache __

答案 1 :(得分:0)

我的一位朋友开发了一个脚本来递归打印目录。

你应该看看这个:MaxHalford/Directory-Architecture 您将能够忽略具有特定扩展名的文件或显示 n 级别的目录。

输出示例:

plt.scatter(X, Y) plt.show() X, Y = np.meshgrid(X, Y) Z = [1] * len(X) fig = plt.figure() ax = fig.add_subplot(1,1,1, projection='3d') ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Z') ax.plot_surface(X, Y, Z) plt.show()

sh
./probe example/