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 把路徑分割為文件路徑和文件擴展名
使用**os.path.splitext()**把路徑分割為文件路徑和文件擴展名。
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爬蟲基礎(chǔ)之selenium庫的用法總結(jié)
今天帶大家來學(xué)習(xí)selenium庫的使用方法及相關(guān)知識總結(jié),文中非常詳細的介紹了selenium庫,對正在學(xué)習(xí)python的小伙伴很有幫助,需要的朋友可以參考下2021-05-05
Python中關(guān)鍵字is與==的區(qū)別簡述
這篇文章主要介紹了Python中關(guān)鍵字is與==的區(qū)別,對于Python初學(xué)者有一定的借鑒學(xué)習(xí)價值,需要的朋友可以參考下2014-07-07
Django 設(shè)置多環(huán)境配置文件載入問題
這篇文章主要介紹了Django 設(shè)置多環(huán)境配置文件載入問題,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02
python面向?qū)ο蠓▽崿F(xiàn)圖書管理系統(tǒng)
這篇文章主要為大家詳細介紹了python面向?qū)ο蠓▽崿F(xiàn)圖書管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-04-04
基于Python實現(xiàn)隨機點名系統(tǒng)的示例代碼
在某些難以抉擇得時候,我們經(jīng)常要用外力來幫助我們做出選擇,比如,梁山出征方臘前沙場點兵,挑選先鋒的場景。所以本文就來用Python做個隨機點名系統(tǒng)吧,需要的可以參考一下2023-04-04
使用python+pygame實現(xiàn)中秋節(jié)動畫效果
馬上就要中秋節(jié)了,使用python可以實現(xiàn)中秋節(jié)動畫效果,包括月亮、兔子和煙花嗎?當(dāng)然是可以的,那該如何實現(xiàn)呢?這篇文章我們主要使用pygame來實現(xiàn),文中有詳細的代碼示例供大家參考,需要的朋友可以參考下2023-09-09

