찾다

 >  Q&A  >  본문

python如何获取当前工程根目录

假设工程根目录为 d:/Project/

然后在 d:/Project/a/b/c/d/file.py 里使用 os.getcwd() 方法获取的是
d:/Project/a/b/c/d

现在我想获取 d:/Project 怎么做?

------------------------------------分割线---------------------------------
谢谢大家的热情回答,都怪我没有将问题说清楚,我的意思是获取当前工程的根目录,而获取根目录的函数可能在任何目录下

根目录既可能是 d:/Project/
也可能是 d:/Python/Project/
也可能是 d:/balabala/Python/Project/
因此逐级往上也是不可能找到的,我目前的方法是在根目录下放一个文件 file

然后这样:

def getSeparator():
    if 'Windows' in platform.system():
        separator = '\\'
    else:
        separator = '/'
    return separator

def findPath(file):
    o_path = os.getcwd()
    separator = getSeparator()
    str = o_path
    str = str.split(separator)
    while len(str) > 0:
        spath = separator.join(str)+separator+file
        leng = len(str)
        if os.path.exists(spath):
            return spath
        str.remove(str[leng-1])

但是这样也有一个问题,就是必须保证任何目录下不能有和根目录下file重名的文件

大家讲道理大家讲道理2802일 전1536

모든 응답(6)나는 대답할 것이다

  • 黄舟

    黄舟2017-04-17 17:48:09

    프로젝트 디렉토리를 절대 이동하지 않는 한 좋은 방법은 없습니다.

    현재 파일의 경로를 가져오기 위해 프로젝트 디렉터리에 모듈을 추가project_dir = os.path.dirname(os.path.abspath(__file__))한 다음 file.py로 가져옵니다

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-17 17:48:09

    逐级往上
    os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.getcwd()))))

    회신하다
    0
  • 阿神

    阿神2017-04-17 17:48:09

    드디어 Project 파일 아래 file.pyos.getcwd()을 동원하면 D:/Project이라는 결과가 나옵니다.

    예를 들어 이렇게 프로젝트 구조를 생성하고 D:/Project/a/b/c/d/file.py에서 직접 호출한다면 당연히 file.py 파일이 위치한 작업 디렉터리의 경로가 필요하게 됩니다.

    D:/Project/__init__.py에서 호출하면 D:/Project/__init__.py이 있는 작업 디렉터리의 경로인 D:/Project/을 가져옵니다.

    os.getcwd()호출하는 파일의 경로에 따라 얻어지는 결과가 다릅니다.


    프로젝트 디렉터리의 이름을 확신하고 동일한 이름의 폴더가 프로젝트 디렉터리에 나타나지 않도록 하려면 정규식을 사용할 수 있습니다.

    으아악

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-17 17:48:09

    으아악

    회신하다
    0
  • 阿神

    阿神2017-04-17 17:48:09

    으아악

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-17 17:48:09

    으아악

    "" 및 "/"에 대한 디렉터리 구분 기호

    회신하다
    0
  • 취소회신하다