簡體   English   中英

當前工作目錄在python中不匹配

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM