【发布时间】:2017-09-08 13:31:15
【问题描述】:
我已经将一个现有的文件系统文件夹作为 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
第二个结果是我所期望的,也就是代码所在的位置。
【问题讨论】:
-
请提供您得到的不同结果。请指定您使用的操作系统,因为并非所有操作系统都提供所有功能。
-
当你的代码在 Eclipse 中运行时,你有一定数量的环境变量,包括 ECLIPSE_HOME、PARENT_LOC、PROJECT_LOC 和 WORKSPACE_LOC。使用它们来构建您的路径。在 Eclipse 中运行时不能依赖 getcwd()。在命令行上你可以。只需检查这些变量是否存在。如果存在,则使用它们,如果不存在...使用 getcwd()
-
@Lescurel,我已经提供了这些信息。
-
@mbieren,我相信代码应该是通用的,可以在两者中运行。应该如何实现。
-
当然。我的意思是你必须在你的函数中编写这个代码,比如
loc = os.environ.get('PROJECT_LOC',None)。如果 loc 没有使用 getcwd ,否则使用 loc 作为 UsefulScripts 的 basedir