![](/img/trans.png)
[英]How to shorten appending to different lists depending on the outcome of if statement
[英]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.