我需要帮助来获取特定子目录中文件名和位置的列表。我的目录结构如下:
C:\folder
-->\2014
----->\14-0023
-------->\(folders with files inside)
----->\CLOSED
-------->\14-0055!
----------->\(folders with files inside)
-->\2015
----->\15-0025
-------->\(folders with files inside)
----->\CLOSED
-------->\15-0017!
----------->\(folders with files inside)
仅当文件处于关闭状态时,我才想获取文件及其路径的列表。
我曾尝试编写多个脚本并在SO上搜索问题,但无法提出一些检索所需列表的方法。尽管似乎有与我的麻烦有关的问题,例如Filtering os.walk() dirs and files,但它们与我的要求不完全相同,到目前为止,我仍无法将在SO上找到的代码用于我的目的。
例如,这是另一个SO线程的一些示例代码,我发现我试图适应自己的目的。
l=[]
include_prefixes = ['CLOSED']
for dir, dirs, files in os.walk(path2, topdown=True):
dirs[:] = [d for d in dirs if d in include_prefixes]
for file in files:
l.append(os.path.join(dir,file))
^上面的内容给我一个空白列表...
在几次失败之后,我想只获取正确文件夹路径的列表,并制作另一个脚本在THOSE文件夹中进行迭代。
l=[]
regex = re.compile(r'\d{2}-\d{4}', re.IGNORECASE)
for root, subFolders, files in os.walk(path2):
try:
subFolders.remove(regex)
except ValueError:
pass
for subFolder in subFolders:
l.append(os.path.join(root,subFolder))
^但是我仍然失败,只是获得了目录中的所有文件路径。无论我做什么,我似乎都无法强迫os.walk(a)从其子目录列表中删除特定的子目录,然后(b)使其遍历这些子目录来获取所需的文件名和路径。 / p>
我应该在示例代码中解决什么?还是我应该考虑完全不同的代码?