Я пытаюсь найти способ представить файловую структуру в виде объектов Python, чтобы я мог легко получить конкретный путь без необходимости вводить всю строку. Это работает для моего случая, потому что у меня есть статическая файловая структура (не изменяется).
Я думал, что могу представить каталоги как класс, а файлы в каталоге как класс / статические переменные.
Я хочу иметь возможность перемещаться по объектам Python, чтобы он возвращал путь, который я хочу, т. Е.
print(FileStructure.details.file1) # root\details\file1.txt
print(FileStructure.details) # root\details
Вместо этого я получаю следующий код:
print("{0}".format(FileStructure())) # root
print("{0}".format(FileStructure)) # <class '__main__.FileStructure'>
print("{0}".format(FileStructure.details)) # <class '__main__.FileStructure.details'>
print("{0}".format(FileStructure.details.file1)) # details\file1.txt
Код, который у меня пока есть ...
import os
class FileStructure(object): # Root directory
root = "root"
class details(object): # details directory
root = "details"
file1 = os.path.join(root, "file1.txt") # File in details directory
file2 = os.path.join(root, "file2.txt") # File in details directory
def __str__(self):
return f"{self.root}"
def __str__(self):
return f"{self.root}"
Я не хочу создавать экземпляр класса для этой работы. Мой вопрос:
- Как я могу вызвать объект класса и получить вместо него строку
текста
- Как я могу иметь вложенные классы, использующие их родительские классы?