簡體   English   中英

如何獲得不同目錄中的所有文件名?

[英]How can I get all filename in different directories?

可以說目錄層次結構如下所示:

          A(root)
          |
B---------C--------D
|         |        |
fileB.h  fileC.png  fileD.py
         fileC1.jpg
          E
          |
         fileE.py

如何訪問所有文檔? 或者只是獲得路徑。 有沒有辦法迭代所有?

我所做的:

path = sys.path[0]
for filename_dir in os.listdir(path):
     filename, ext = os.path.splitext(filename_dir)
     if ext == '.h':
         #do something
     elif ext == '.png'
         #do something
     .....

但是據我所知listdir只能訪問程序的py文件所在的目錄。

這僅給出目錄下的目錄和文件,但不遞歸:

import os

for filename in os.listdir(path):
    print filename

如果要列出絕對路徑:

import os

def listdir_fullpath(d):
    return [os.path.join(d, f) for f in os.listdir(d)]

如果要進行遞歸搜索,則可以使用迭代器在每次迭代時返回3元組,包括父目錄,目錄列表和文件列表:

for i,j,k in os.walk('.'):
    print i, j, k

例如:

    import os

    path = sys.path[0]

    for dirname, dirnames, filenames in os.walk(path):
        for subdirname in dirnames:
            print "FOUND DIRECTORY: ", os.path.join(dirname, subdirname)
        for filename in filenames:
            print "FOUND FILE: ", os.path.join(dirname, filename)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM