如何创建一个链接列表,将当前路径的每个文件夹存储为一个节点,并将这些文件夹的每个文件存储为 Python 上的一个项目?

How can I create a linked list that stores each folder of the current path as a Node and each file of those folders as an item on Python?

假设我在名为 C:\Users\Test 的路径中有以下文件夹:

它们中的每一个都只包含名称不同的图像(PNG 格式)(其中 none 个包含子文件夹)。

如何构建一个 Python 程序,为上面 C:\Users\Test 中的文件夹创建数据结构,双击后看起来像下面的数据结构?

struct the_linked_list{

Color = ['1.png', '2.png', '3.png']
Cuerpo = ['Body.png']
Fondo = ['Background.png']
Ojos = ['eyes1.png', 'eyes2.png', 'eyes3.png']
Pinzas = ['a.png', 'b.png', 'c.png']
Puas = ['x.png', 'y.png'. 'z.png']
}

-假设这些文件夹中的文件名分别是上面示例中提供的名称。

-创建的数据结构必须将其节点名称分别设置为文件夹名称。

我的建议是使用 os.listdir() 函数,其中 returns 指定目录中的文件列表。然后你可以使用它几次来获得你想要在链接列表中的目录列表。然后,遍历此列表,为每次迭代创建一个新对象,并在此目录上调用 os.listdir 以获取文件列表。

这是我所做的实现:

import os

class Node:
    def __init__(self, name, files):
        self.dir_name = name
        self.files = files
        self.next = None
    
def add(head, new_node):
    '''Adds new node to end of linked list'''
    curr_node = head
    while (curr_node.next != None):
        curr_node = curr_node.next
    
    curr_node.next = new_node
    
# Main method

path = input()
list_of_file_contents = os.listdir(path)
head = None

# Get files and add directory to LL
for dir in list_of_file_contents:
    path_to_dir = f"{path}\{dir}"

    if (os.path.isdir(path_to_dir)):
        file_list = os.listdir(path_to_dir)

        if (head == None):
            head = Node(dir, file_list)
        else:
            add(head, Node(dir, file_list))