Python 獲取檔案路徑 專案路徑

2021-09-01 13:23:52 字數 3809 閱讀 3118

____tz_zs

__file__

在ide中獲取的是絕對路徑,在終端啟動時,啟動位置是本模組,則為相對路徑,由外部模組呼叫則獲取的是未經解析的絕對路徑。

sys.path[0]

忠實的表示啟動的檔案所在的路徑

os.getcwd()

獲取的是工作空間的路徑。ide中可以設定working directory,終端啟動時則是指你cd到的那個路徑下。

os.path.abspath(os.path.split(os.path.abspath(os.path.realpath(__file__)))[0] + 「/…/」)

此方法是我寫的獲取專案絕對路徑的工具方法。注意此檔案的位置固定為專案的util資料夾下。

補充:sys.argv

是呼叫指令碼時使用的路徑,list格式。是呼叫python命令的時候的第乙個引數。

如,在ide啟動時,ide預設配置的引數如圖

['/home/zmate/tzzs/mytz/development/test_start.py']
在終端啟動

:~/tzzs/mytz/development$ python test_start.py 

['test_start.py']

:~/tzzs/mytz$ python development/test_start.py

['development/test_start.py']

專案名稱mytz

專案目錄結構

development/test_start.py

util/tool_get_project_path.py

#!/usr/bin/python2.7

# -*- coding:utf-8 -*-

"""@author: tzzs

"""import os

import sys

defget_project_path()

:print

(__file__)

# 此py檔案所在的路徑

print

(sys.path[0]

)# 啟動的py檔案所在的路徑

print

(os.getcwd())

# 工作空間的路徑(working directory),預設為啟動的py檔案所在路徑,但ide中可以自定義設定。

project_path = os.path.split(os.path.abspath(os.path.realpath(__file__)))

[0]+

"/../"

print

(os.path.abspath(project_path)

)if __name__ ==

'__main__'

: get_project_path(

)

#!/usr/bin/python2.7

# -*- coding:utf-8 -*-

"""@author: tzzs

"""import sys

reload

(sys)

sys.setdefaultencoding(

'utf-8')0

]+"/../"

)from util.tool_get_project_path import get_project_path

get_project_path(

)

直接啟動,此時預設工作目錄為 /home/user/tzzs/mytz/util

/home/user/tzzs/mytz/util/tool_get_project_path.py

/home/user/tzzs/mytz/util

/home/user/tzzs/mytz/util

/home/user/tzzs/mytz

修改工作目錄(working directory)為 /home/user/tzzs/mytz/

/home/user/tzzs/mytz/util/tool_get_project_path.py

/home/user/tzzs/mytz/util

/home/user/tzzs/mytz

/home/user/tzzs/mytz

直接啟動,此時預設工作目錄為 /home/user/tzzs/mytz/development

/home/user/tzzs/mytz/util/tool_get_project_path.pyc

/home/user/tzzs/mytz/development

/home/user/tzzs/mytz/development

/home/user/tzzs/mytz

修改工作目錄(working directory)為 /home/user/tzzs/mytz/

/home/user/tzzs/mytz/util/tool_get_project_path.pyc

/home/user/tzzs/mytz/development

/home/user/tzzs/mytz

/home/user/tzzs/mytz

在檔案位置啟動

:~/tzzs/mytz/util$ python tool_get_project_path.py

tool_get_project_path.py

/home/user/tzzs/mytz/util

/home/user/tzzs/mytz/util

/home/user/tzzs/mytz

在專案根目錄啟動

:~/tzzs/mytz$ python util/tool_get_project_path.py

util/tool_get_project_path.py

/home/user/tzzs/mytz/util

/home/user/tzzs/mytz

/home/user/tzzs/mytz

在檔案位置啟動

:~/tzzs/mytz/development$ python test_start.py 

/home/user/tzzs/mytz/development/../util/tool_get_project_path.pyc

/home/user/tzzs/mytz/development

/home/user/tzzs/mytz/development

/home/user/tzzs/mytz

在專案根目錄啟動

:~/tzzs/mytz$ python development/test_start.py 

/home/user/tzzs/mytz/development/../util/tool_get_project_path.pyc

/home/user/tzzs/mytz/development

/home/user/tzzs/mytz

/home/user/tzzs/mytz

python獲取當前檔案路徑以及父檔案路徑

當前檔案的路徑 pwd os.getcwd 當前檔案的父路徑 father path os.path.abspath os.path.dirname pwd os.path.sep 當前檔案的前兩級目錄 grader father os.path.abspath os.path.dirname pw...

python獲取檔案路徑

一 獲取當前路徑 1 使用sys.ar 0 import sys print sys.ar 0 輸出 本地路徑 2 os模組複製 import os print os.getcwd 獲取當前工作目錄路徑 print os.path.abspath 獲取當前工作目錄路徑 print os.path.a...

python 獲取檔案路徑

print 獲取當前檔案路徑 os.path.realpath file 獲取當前檔案路徑 parent os.path.dirname os.path.realpath file print 獲取其父目錄 parent 從當前檔案路徑中獲取目錄 garder os.path.dirname par...