我有一个关于如何在Python中仅列出文件夹而不是文件夹中的文件的问题。我目前有几行代码将ever文件夹中的每个文件连接到一个列表中。如果我有50个文件夹,我想制作50个不同的列表而不是一个大的列表。
Folder_files = []
for dirName, subdirList, fileList in os.walk(Path):
for filename in fileList:
if "A_0" in dirName:
if ".xml" in filename.lower():
Folder_files.append(os.path.join(dirName,filename))
我知道我目前只有Folder_files作为我唯一的列表,但我希望通过使用for循环来实验,以获得不同的列表。
在选择A_0
文件之前,我只是需要帮助了解如何阅读文件夹.xml
。
在将文件附加到列表之前。我附上了一个示例代码,我想它将如下所示:
for dirName, subdirList, fileList in os.walk(Path):
for filename in fileList:
if "A_0" in dirName:
#for loop in here
#Set up all folders
if ".xml" in filename.lower():
#Add files in folder to the appropriate file list
答案 0 :(得分:0)
为此目的使用列表的dict要好得多:
dirs = dict()
for dirName, subdirList, fileList in os.walk(root):
if "A_0" in dirName:
dir_list = dirName.split('/')[-1] # if your directory path is '/foo/bar/baz' your list will be named 'baz'
dirs[dir_list] = [os.path.join(dirName,filename) for filename in fileList if ".xml" in filename]
但如果你真的想将每个列表存储为单独的变量,你可以使用exec():
for dirName, subdirList, fileList in os.walk(root):
if "A_0" in dirName:
dir_list = dirName.split('/')[-1] # if your directory path is '/foo/bar/baz' your list will be named 'baz'
exec(dir_list + '= [os.path.join(dirName,filename) for filename in fileList if ".xml" in filename]')
理解和维护第二段代码要困难得多。所以我鼓励你使用列表字典。
答案 1 :(得分:0)
import os
dirs= next(os.walk(r'/home/sirmagid/public_html/ts/'))[1]
for name in dirs:
print name