[英]current working directory mismatch in python
我已将现有文件系统文件夹导入为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
第二个结果是我期望的结果,也就是代码的确切位置。
当心,您不能依靠它。 请执行下列操作 :
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(环境)可以通过选择名称为PROJECT_LOC和变量(另一个按钮)的NEW并选择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应该在那了
我用的是sys软件包而不是os。 它按预期工作。
import os,sys
currentpath = sys.path[0]
print currentpath
我可以从eclipse以及从命令行运行它以获得正确的路径。 谢谢您的帮助 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.