When using os.chdir(path) doesnt show a change in dir but does change dir in the interpreter
当我使用os.chdir('/ home')时,我遇到了一些有趣的东西,当我使用os.chdir('/ home')时,python仍会显示我的cwd,就像我启动解释器一样。它变得奇怪的是dir实际上正在被改变但是解释器从未表现出这一点。
这是2.7的一些奇怪的遗产吗?或者这是否按预期工作?今天早上我花了一些时间试图弄清楚为什么我的目录在解释器里面从未改变过。
我使用import os,import sys和basic python命令中的函数。
口译员设置:
进口口
导入系统
1 2 3 4 5 6 7 8 9 10 11 12 | def findAHomeP(homeDir="randomDirName"): cwd = os.cwd() splitCwd = cwd.split('/') try: index = splitCwd.index(homeDir) except NameError as e: print"error stuff" return cwd newPath = '/'.join(splitCwd[0:index+1])+'/' return newPath |
此代码粗略返回所需位置的主目录。基本上我正在编写一个测试用例来测试它,并确保结果正确返回。当我在进入下一步之前进入解释器进行测试时,我发现当你使用os.chdir(path)命令它实际上并没有显示python解释器中的dir更改时,它仍然会显示任何目录你是从那里开始翻译的。
例如,如果我在/ home / user / dir1 / dir2 / d5中启动解释器,如果使用cwd,它将始终在解释器中显示该目录。即使你用os.chdir(newPath)改变了它,它确实有效,但解释器由于某种原因没有更新cwd。
如果你的意思是使用