如何获取包括目录在内的完整文件路径?

How to get the full file path including the directory?

我有一个非常复杂的问题。我在一个列表中有多个文件名,这些文件的根目录是相同的:mother_directory。但是每个文件都有不同的子目录。现在我有一个正在处理一些文件的脚本,我需要知道确切的完整路径,包括每个文件的子目录。我知道我可以使用 os.walk 但这会使我的函数过于嵌套,因为在这个函数中我打算使用另一个使用这些完整路径的函数。

这是文件结构:

mother_directory:
               |_child1:
                      20211011.xml
                      20211001.xml
               |_child2:
                      20211002.xml

这是我当前的代码:

mother_path = r'c:\data\user1\Desktop\mother_directory'

blue_dates = ['20211011', '20211012', '20211013', '20211001', '20211002']
red_dates =  ['20211011', '20211009', '20211008', '20211001', '20211002']
file_names = ['20211011.xml', '20211001.xml', '20211002.xml']

def process_files(x):
  if x in red_dates:
    match_file = [s for s in file_names if x in s] 
    file_path = os.path.join(mother_path, match_file [0])
    print(file_path)

for x in blue_dates:
  process_files(x)

我当前的输出:

c:\data\user1\Desktop\mother_directory211011.xml
c:\data\user1\Desktop\mother_directory211001.xml
c:\data\user1\Desktop\mother_directory211002.xml

当我 运行 我的函数时,我希望我想要的输出是这样的:

c:\data\user1\Desktop\mother_directory\child1211011.xml
c:\data\user1\Desktop\mother_directory\child1211001.xml
c:\data\user1\Desktop\mother_directory\child2211002.xml

我添加了一个条件,我相信它现在可以工作了。

def process_files(x):
    if x in red_dates:
        match_file = [s for s in file_names if x in s]
        for root, dirs, files in os.walk(mother_path):
            for file in files:
                if match_file[0] in file:
                    print(os.path.join(root,match_file[0]))