1

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

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

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

4

2 回答 2

0

当心你不能依赖它。请执行下列操作 :

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

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

然后使用 basedir 查找您的文件

更新

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

window->preferences->PyDev->Interpreters->Python Interpreter TAB (environment) 您可以在此处指定 PROJECT_LOC,方法是选择带有名称 PROJECT_LOC 和变量(另一个按钮)的 NEW 并选择 project_loc 来引用 project_loc。

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

您现在可以使用

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

PROJECT_LOC 现在应该在那里

于 2017-09-08T14:04:08.530 回答
-1

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

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

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

于 2017-09-08T13:46:48.213 回答