Класс для построения путей на основе пути к текущему классу файл


Я написал класс, который определяет относительный путь к корневой директории проекта, откуда я звоню, что класс.

Е. Г. У меня есть структура:

rootProjectDir
 |_sub
 |__subsub
 |___subsubfile.txt
 |_another_sub
 |__another_sub_file.py

и то, что я делаю, когда я работаю в another_sub_file.py Я звоню своему классу GetRootPath чтобы получить /home/user/dev/rootProjectDir и тогда я смогу построить путь к ./rootProjectDir/sub/subsub/subsubfile.txt чтобы узнать, что subsubfile.txt. Я не нашел лучшего решения... я надеюсь, что нет, но я написал вспомогательный класс для меня, чтобы достичь этого:

import os


class GetRootPath:
    def __init__(self):
        self.rootFolder = '/rootProjectDir'

    def get_root(self):
        working_file_dir = os.path.dirname(os.path.abspath(__file__))

        i = len(working_file_dir.split('/'))
        root = list(working_file_dir.split('/'))
        new_root = []

        for item in root[1:]:
            new_root.append('/' + str(item))

        while True:
            if self.rootFolder == new_root[-1]:
                builded = ''.join(new_root) + '/'
                return builded
            else:
                new_root.pop()
            i -= 1

Есть ли лучший способ добиться моей цели, а также, что может быть сделано лучше с моего класса, чтобы улучшить производительность и стабильность создают относительный путь к корневой директории моего проекта. Или есть более подходящие для Python способ навигации папку проекта, чтобы получить файлы и т. д. Как вам нужно? Потому что мой GetRootPath класс выглядит не подходящие для Python способ сделать это.

С. С. Я работаю в PyCharm и мой проект создан с ней, так что это не только папки... наверное. :}



119
2
задан 11 апреля 2018 в 03:04 Источник Поделиться
Комментарии