Структура данных для дерева каталогов в Python - PullRequest
0 голосов
/ 02 февраля 2019

Я хочу создать структуру данных, которая содержит полную информацию для любого произвольного дерева каталогов, адресованного путем каталогов.Я предполагаю что-то вроде этого:

dirtree[ "/home/user" : { subdirs: [ "bin", "Desktop" ] , "files" : [ ".profile" , ".login" ]

или в форме списка, чтобы иметь начальную точку, которая легко адресуема:

dirtree[0][ "/home/user" : { subdirs: [ "bin", "Desktop" ] , "files" : [ ".profile" , ".login" ]

dirtree[1][ "/home/user/bin" : { subdirs: [ "Python" ] , "files" : [ "script1.py" , "script2.py" ]

Это означает, что элементы в списке будут диктоватьиндексируется по полному пути каждого каталога, который содержит два файла dict, subdir и файлы, которые являются списками файлов и подкаталогов в каждом каталоге.

Я думал, что внешняя оболочка может быть списком, так что естьотправная точка корня дерева каталогов в 0-м элементе, но я не уверен, что это необходимо.Проходить было бы быстрее.

Это для хранения всей информации для веб-сервера.

Я получил информацию о списках, но как мне вложить это в другой каталог?полные пути?

>>> dir={ "subdirs":[] , "files":[] }
>>> dir
{'subdirs': [], 'files': []}

Кстати, я начинаю с python.

Я хочу закончить чем-то вроде dirtree {"/ home / username"} {"subdirs"} [] dirtree {"/ home / username"} {"files"} []

Затем я могу начать сверху и постепенно добавлять каталоги и файлы по мере их нахождения и сохранять полный каталогподдерево и иметь возможность переключать контексты в любой каталог в поддереве для создания веб-страницы на основе этого для навигации по веб-странице.

1 Ответ

0 голосов
/ 03 февраля 2019
 dirkey="/"
 subdirs=['d1', 'd2', 'd3', 'd4', 'd5', 'd6']
 files=['f1', 'f2', 'f3', 'f4', 'f5', 'f6']

 dir={ dirkey : { "subdirlist" : subdirs , "filelist" : files } }

 dir
 {'/': {'subdirlist': ['d1', 'd2', 'd3', 'd4', 'd5', 'd6'], 'filelist': ['f1', 'f2', 'f3', 'f4', 'f5', 'f6']}}

 dir["/"]
 {'/': {'subdirlist': ['d1', 'd2', 'd3', 'd4', 'd5', 'd6'], 'filelist': ['f1', 'f2', 'f3', 'f4', 'f5', 'f6']}}

 dir["/"]["subdirlist"]
 ['d1', 'd2', 'd3', 'd4', 'd5', 'd6']

 dir["/"]["filelist"]
 ['f1', 'f2', 'f3', 'f4', 'f5', 'f6']

 dir["/"]["filelist"][1]
 'f2'

 dir["/"]["filelist"][-1]
 'f6'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...