python中当前的工作目录不匹配

时间:2017-09-08 13:31:16

标签: python getcwd

我已将现有的文件系统文件夹导入为eclipse中的新项目文件夹。我有一个脚本,它获取代码的当前工作目录路径。我需要将目录位置更改为与其相关的其他目录中的acccess文件。但是从eclipse和命令行执行时它给出了不同的值。两个地方的位置相同。请帮我解决这个问题。操作系统是这里的窗口

import os
print os.getcwd()
os.chdir(os.path.dirname(os.getcwd()))
print os.getcwd()

结果就是这个

C:\Automation\trunk\Base\TestScripts
C:\Automation\trunk\Base

其他结果就是这个

C:\Automation\trunk\UsefulScripts
C:\Automation\trunk

第二个结果是我期望的结果,也就是代码所在的结果。

2 个答案:

答案 0 :(得分:0)

注意你不能依赖它。执行以下操作:

basedir = os.environ.get('PROJECT_LOC', None)

if not basedir:
     basedir = sys.path[0]    # We are on commandline. sys.path OK

然后使用basedir查找文件

<强>更新

您必须在解释器的运行时中指定此变量

window-&gt; preferences-&gt; PyDev-&gt; Interpreters-&gt; Python Interpreter TAB(环境)在那里,您可以通过选择NEW名称PROJECT_LOC和变量(另一个按钮)并选择project_loc来指定引用project_loc的PROJECT_LOC。

由于某些原因,这些变量在python中不可见。

您现在可以使用

进行检查
def read_all_variables():
    for key in os.environ.keys():
        print ("%30s %s" % (key,os.environ[key]))

PROJECT_LOC现在应该在那里

答案 1 :(得分:-1)

我使用的是sys包而不是os。它按预期工作。

import os,sys
currentpath = sys.path[0]
print currentpath

我可以从eclipse和命令行运行它来获取正确的路径。谢谢你的帮助。