导航到顶层模块目录的Python函数

2024-04-26 18:07:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用python编写一个函数,它可以导航到我正在处理的项目的顶层目录,以便于记账。我认为这会更容易,而不是到处写abs路径,因为这些路径可能会根据机器而改变。在

但是,我的函数不是超级复杂的,在某些情况下会进入inf循环。有没有人对这种事情有好的策略?在

def chdir_top():
    while os.getcwd().split('/')[-1] != "myproj":
        os.chdir('..')
    if os.getcwd().split('/')[-2] != "myproj" and 
               "myproj" in os.listdir(os.getcwd()):
        os.chdir("myproj")

谢谢。在


Tags: 项目函数路径目录机器os情况abs
1条回答
网友
1楼 · 发布于 2024-04-26 18:07:59

不要为此使用os.getcwd();请改用模块级__file__名称。如果当前的工作目录是别处的,那么当您到达根目录时,您将进入一个无限循环,并且不断地向上一个目录失败。在

import os.path

here = os.path.dirname(os.path.abspath(__file__))

现在,here是包含当前Python文件的目录的路径。使用它可以找到项目的顶部(不是,方法是使用chdir(),而是使用os.path函数)。在

相关问题 更多 >