簡體   English   中英

如何根據子目錄獲取不同的文件路徑列表?

[英]How to get different lists of file paths depending on subdirs?

-Root
--A
---1,2
--B
---3

我正在嘗試獲取基於子目錄的路徑列表:

[['Root/A/1','Root/A/2'],['Root/B/3']]

我嘗試使用os.walk,但無法正常工作。 我可以在一個巨大的列表中獲得所有文件的列表,但是無法基於子目錄拆分這些文件

fullList = []
for root, dirs, files in os.walk(dir):
        for name in files:
            fullList.append(os.path.join(root, name))

您想要一個列表列表,但是創建一個字符串列表。 您需要創建每個內部列表,並將它們全部組合到一個主列表中。

該程序可能會執行您想要的操作:

import os
from pprint import pprint


def return_list_of_paths(dir='.'):
    return [[os.path.join(root, file) for file in files]
            for root, dirs, files in os.walk(dir)
            if files]


pprint(return_list_of_paths("ROOT"))

或者,如果您不關心列表推導:

import os
from pprint import pprint


def return_list_of_paths(dir='.'):
    fullList = []
    for root, dirs, files in os.walk(dir):
        if files:
            oneList = []
            for file in files:
                oneList.append(os.path.join(root, file))
            fullList.append(oneList)
    return fullList


pprint(return_list_of_paths("ROOT"))

暫無
暫無

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

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