Python獲取與處理文件路徑/目錄路徑實例代碼
文件目錄結(jié)構(gòu)說明
一、路徑獲取
1.1 獲取當(dāng)前文件的絕對路徑
使用**os.path.abspath()**獲取當(dāng)前文件的絕對路徑。
import os file_path = os.path.abspath(__file__) print(file_path)
輸出:
e:\Python\Path\python_path_test.py
1.2.1 獲取當(dāng)前文件的所在目錄
使用**os.path.dirname()**獲取當(dāng)前文件的所在目錄。
import os directory_path = os.path.dirname(os.path.abspath(__file__)) print(directory_path)
輸出:
e:\Python\Path
1.2.2 獲取當(dāng)前文件的所在目錄的上一級目錄
使用多個**os.path.dirname()**嵌套以獲取當(dāng)前文件的所在目錄的上一級目錄。
import os parent_directory_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) print(parent_directory_path)
輸出:
e:\Python
1.3 獲取當(dāng)前文件名
使用**os.path.basename()**獲取當(dāng)前文件的所在目錄。
import os file_name = os.path.basename(__file__) print(file_name)
輸出:
python_path_test.py
1.4 獲取當(dāng)前文件對于基準(zhǔn)路徑的相對路徑
使用**os.path.relpath(file_path, base_path)**獲取當(dāng)前文件對于基準(zhǔn)路徑的相對路徑。
import os file_path = os.path.abspath(__file__) #獲取當(dāng)前文件的絕對路徑 base_path = "E:\Python" #設(shè)置基準(zhǔn)路徑(計算相對路徑的起始路徑) relative_path = os.path.relpath(file_path, base_path) #計算從基準(zhǔn)路徑開始的相對路徑 print("Absolute Path: " + file_path) print("Base Path: " + base_path) print("Relative Path: " + relative_path)
輸出:
Absolute Path: e:\Python\Path\python_path_test.py
Base Path: E:\Python
Relative Path: Path\python_path_test.py
二、路徑判斷
2.1 判斷路徑是否存在
使用**os.path.exists()**判斷路徑是否存在。
import os path = "./data/data_file.txt" is_exists = os.path.exists(path) print(is_exists)
輸出:
True
import os path = "./data/data.txt" is_exists = os.path.exists(path) print(is_exists)
輸出:
False
2.2 判斷路徑是否為絕對路徑
使用**os.path.isabs()**判斷路徑是否為絕對路徑。
import os path = "E:\Python\Path\data\data_file.txt" is_exists = os.path.isabs(path) print(is_exists)
輸出:
True
import os path = "./data/data_file.txt" is_exists = os.path.isabs(path) print(is_exists)
輸出:
False
2.3 判斷路徑是否為目錄
使用**os.path.isdir()**判斷路徑是否為目錄。
import os path = "E:\Python\Path\data" is_exists = os.path.isdir(path) print(is_exists)
輸出:
True
import os path = "E:\Python\Path\data\data_file.txt" is_exists = os.path.isdir(path) print(is_exists)
輸出:
False
2.4 判斷路徑是否為文件
使用**os.path.isfile()**判斷路徑是否為文件。
import os path = "E:\Python\Path\data\data_file.txt" is_exists = os.path.isfile(path) print(is_exists)
輸出:
True
import os path = "E:\Python\Path\data" is_exists = os.path.isfile(path) print(is_exists)
輸出:
False
三、路徑處理
3.1 把多個目錄/文件名合并(連接)為一個路徑
使用**os.path.join(path1, path2, ···)**把多個目錄/文件名合并(連接)為一個路徑。
import os path1 = "E:\Python" path2 = "Path\data" path3 = "data_file.txt" path = os.path.join(path1, path2, path3) print(path)
輸出:
E:\Python\Path\data\data_file.txt
3.2 把路徑分割為文件所在目錄路徑(dirname)和文件名(basename)
使用**os.path.split()**把路徑分割為文件所在目錄路徑(dirname)和文件名(basename)。
import os path = os.path.abspath(__file__) result = os.path.split(path) print(result)
輸出:
('e:\\Python\\Path', 'python_path_test.py')
3.3 把路徑分割為驅(qū)動器名(Windows操作系統(tǒng))和文件路徑
使用**os.path.splitdrive()**把路徑分割為驅(qū)動器名(Windows)和文件路徑。
import os path = os.path.abspath(__file__) result = os.path.splitdrive(path) print(result)
輸出:
('e:', '\\Python\\Path\\python_path_test.py')
3.4 把路徑分割為文件路徑和文件擴(kuò)展名
使用**os.path.splitext()**把路徑分割為文件路徑和文件擴(kuò)展名。
import os path = os.path.abspath(__file__) result = os.path.splitext(path) print(result)
輸出:
('e:\\Python\\Path\\python_path_test', '.py')
附:python正確讀取文件路徑的三種解決方法
一、問題需求
日常用程序讀取文件數(shù)據(jù)等時,常常會顯示一些諸如文件路徑不存在等錯誤信息。
二、問題原因
這類問題,在python中,主要是由于 “\”(反斜杠) 引起的。
因為在Windows系統(tǒng)中,使用 反斜杠(\) 作為文件路徑的分隔符,但在python中,反斜杠(\) 會被標(biāo)識為轉(zhuǎn)義字符引起的。從而導(dǎo)致的程序報錯。
三、解決辦法
針對上述問題,常用的解決方法有如下三種。
以windows中的文件路徑:“E:\CloudMusic\MV\demo.txt” 為例。
方法1 將路徑中的單反斜杠替換為雙反斜杠。如下所示:
“E:\CloudMusic\MV\demo.txt”
方法2 在路徑前加r,使字符保持原始含義。 如下所示:
r"E:\CloudMusic\MV\demo.txt"
方法3 將反斜杠替換為正斜杠(/)。如下所示:
“E:/CloudMusic/MV/demo.txt”
根據(jù)自己的習(xí)慣,選擇調(diào)整即可。
總結(jié)
到此這篇關(guān)于Python獲取與處理文件路徑/目錄路徑的文章就介紹到這了,更多相關(guān)Python獲取處理文件路徑內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python tkiner實現(xiàn) 一個小小的圖片翻頁功能的示例代碼
這篇文章主要介紹了python tkiner實現(xiàn) 一個小小的圖片翻頁功能,需要的朋友可以參考下2020-06-06Python中多個數(shù)組行合并及列合并的方法總結(jié)
下面小編就為大家分享一篇Python中多個數(shù)組行合并及列合并的方法總結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04關(guān)于Pytorch的MNIST數(shù)據(jù)集的預(yù)處理詳解
今天小編就為大家分享一篇關(guān)于Pytorch的MNIST數(shù)據(jù)集的預(yù)處理詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01python高階函數(shù)functools模塊的具體使用
本文主要介紹了python高階函數(shù)functools模塊的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03