ИМХО, вам лучше не использовать список для своих папок, потому что вы все равно должны использовать индекс или итерировать элементы для поиска любого файла в вашей структуре данных.
Без типа списка ваш каталог будет выглядеть как
userDir = {
"User1": {
"folder1": {
"file1": file1,
"file2": file2
},
"file3": file3
},
"User2": {
}
}
А если это связано с порядком файлов, у вас есть несколько вариантов.
- Использовать список и повторять
- порядок только по имени файла (папки)
- Устанавливать метаинформацию (включая порядок) для каждого предмета и заказывать каждый раз при получении
- В каждой папке есть информация о заказе
Если вы выберете вариант 2, я думаю, он наиболее прост и легок в обращении.
В противном случае:
- Установите метаинформацию (включая порядок) для каждого предмета и заказывайте каждый раз, когда вы получаете
(вероятно, вы должны использовать классы вместо dict)
userDir = {
"_type": "folder",
"User1": {
"_type": "folder",
"folder1": {
"_type": "folder",
"file1": {
"_type": "file",
"_content": file1,
"_order": 1,
},
"file2": {
"_type": "file",
"_content": file2,
"_order": 2,
},
},
"file3": {
"_type": "file",
"_content": file3,
"_order": 1,
},
},
"User2": {
"_type": "folder",
}
}
- В каждой папке есть информация о заказе
userDir = {
"_order": ["User1", "User2"],
"User1": {
"_order": ["folder1", "file3"],
"folder1": {
"_order": ["User1", "User2"],
"file1": file1,
"file2": file2
},
"file3": file3
},
"User2": {
}
}