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