如何根据子目录获取不同的文件路径列表?
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"))
-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"))