0

我正在尝试在 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")

谢谢你。

4

1 回答 1

2

不要os.getcwd()用于此;请改用模块级__file__名称。如果当前工作目录在别处,那么当您到达根目录时,您最终会陷入无限循环,并且不断无法上一个目录。

import os.path

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

现在here是包含当前 Python 文件的目录的路径。使用它来查找项目的顶部(不是通过使用chdir(),而是通过使用os.path函数)。

于 2013-08-26T18:34:04.340 回答