Python中使用os.walk()递归遍历目录

新手上路,请多包涵

我想从根目录导航到其中的所有其他目录并打印相同的内容。

这是我的代码:

 #!/usr/bin/python

import os
import fnmatch

for root, dir, files in os.walk("."):
        print root
        print ""
        for items in fnmatch.filter(files, "*"):
                print "..." + items
        print ""

这是我的 O/P:

 .

...Python_Notes
...pypy.py
...pypy.py.save
...classdemo.py
....goutputstream-J9ZUXW
...latest.py
...pack.py
...classdemo.pyc
...Python_Notes~
...module-demo.py
...filetype.py

./packagedemo

...classdemo.py
...__init__.pyc
...__init__.py
...classdemo.pyc

以上, ../packagedemo 是目录。

但是,我需要按以下方式打印 O/P:

 A
---a.txt
---b.txt
---B
------c.out

上面, AB 是目录,其余的是文件。

原文由 Nitaai 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 416
2 个回答

这会给你想要的结果

#!/usr/bin/python

import os

# traverse root directory, and list directories as dirs and files as files
for root, dirs, files in os.walk("."):
    path = root.split(os.sep)
    print((len(path) - 1) * '---', os.path.basename(root))
    for file in files:
        print(len(path) * '---', file)

原文由 Ajay 发布,翻译遵循 CC BY-SA 3.0 许可协议

递归遍历一个目录,在该目录中,您从当前目录中的所有目录中获取所有文件,然后从当前目录中获取所有目录 - 因为上面的代码并不简单(恕我直言):

 for root, dirs, files in os.walk(rootFolderPath):
    for filename in files:
        doSomethingWithFile(os.path.join(root, filename))
    for dirname in dirs:
        doSomewthingWithDir(os.path.join(root, dirname))

原文由 Erhard Dinhobl 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题