我正在尝试在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")
谢谢。
答案 0 :(得分:2)
请勿使用os.getcwd()
;请改用模块级__file__
名称。如果当前工作目录是其他地方,当您到达根目录并且不断上升到一个目录时,最终会进入无限循环。
import os.path
here = os.path.dirname(os.path.abspath(__file__))
现在here
是包含当前Python文件的目录的路径。使用它来查找项目的顶部(不,使用chdir()
,但使用os.path
函数)。