Python中os.path.join函數(shù)的用法舉例詳細(xì)講解
一、os.path.join函數(shù)
os.path.join
函數(shù)用于拼接多個(gè)路徑字符串,生成一個(gè)新的路徑字符串。
用法:os.path.join(path,*paths)
二、函數(shù)用法個(gè)人總結(jié)
1. 處理不同操作系統(tǒng)的路徑分隔符。
2. 從右往左看參數(shù),如果一個(gè)參數(shù)<開頭>無‘/’或者‘\’,則按照操作系統(tǒng)用分隔符,如果遇到,則左邊參數(shù)均會(huì)被舍棄。
3. 從右往左看參數(shù),如果有一個(gè)參數(shù)是一個(gè)絕對路徑,則在它左邊的所有參數(shù)均會(huì)被舍棄。
4. 如果最后一個(gè)參數(shù)為''空,則生成的路徑以一個(gè)‘\’分隔符結(jié)尾(按照操作系統(tǒng)默認(rèn)分隔符)
5. 同時(shí)存在以‘./’與‘/’開始的參數(shù),以‘/’為主,從最后一個(gè)以‘/’開頭的參數(shù)開始拼接,之前的參數(shù)全部丟棄。
6. 只存在以“. / ”開始的子路徑,而不存在以“ / ”開頭的子路徑,則會(huì)將“. / ”里面的“ . ”當(dāng)作子路徑的一部分,進(jìn)行拼接。
三、函數(shù)的用法示例詳解
本臺電腦操作系統(tǒng):Win10
1. 處理不同操作系統(tǒng)的路徑分隔符。
os.path.join
函數(shù)能夠根據(jù)操作系統(tǒng)自動(dòng)選擇適當(dāng)?shù)穆窂椒指舴?。例如Windows使用反斜杠‘\’,
而Unix和Mac使用正斜杠‘/’
。
本臺電腦操作系統(tǒng):Win10,所以只能展示基本用法
Demo1
import os print(os.path.join('path', 'www', 'xxx', 'iii')) # 輸出:path\www\xxx\iii
2. 從右往左看參數(shù),如果一個(gè)參數(shù)<開頭>無正斜杠‘/’或者反斜杠‘\’,則按照操作系統(tǒng)用分隔符,如果遇到,則左邊參數(shù)均會(huì)被舍棄。
Demo2
import os print(os.path.join('path', 'www', 'xxx', 'iii')) # 輸出:path\www\xxx\iii print(os.path.join('path', 'www', 'xxx', '/iii')) # 輸出:/iii print(os.path.join('path', 'www', '/xxx', 'iii')) # 輸出:/xxx\iii print(os.path.join('path', '/www', 'xxx', 'iii')) # 輸出:/www\xxx\iii print(os.path.join('path', '\www', 'xxx', 'iii')) # 輸出:\www\xxx\iii print(os.path.join('p/a/t/h/', 'www/', 'x/x/x/', 'ii/i')) # 如果使用都是‘/',則要在參數(shù)末尾加上/,不然會(huì)根據(jù)操作系統(tǒng)變成\ # 輸出:p/a/t/h/www/x/x/x/ii/i
3. 從右往左看參數(shù),如果有一個(gè)參數(shù)是一個(gè)絕對路徑,則在它左邊的所有參數(shù)均會(huì)被舍棄。
Demo3
import os print(os.path.join('path', 'www', 'xxx', 'iii')) # 輸出:path\www\xxx\iii print(os.path.join('path', 'w:ww', 'xxx', 'iii')) # 輸出:w:ww\xxx\iii print(os.path.join('path', 'w:\ww', 'x:xx', 'iii')) # 輸出:x:xx\iii print(os.path.join('path', 'w:\ww', 'x:xx', '/iii')) # 輸出:x:/iii print(os.path.join('path', 'w:\ww', 'xxx', '/iii')) # 輸出:w:/iii print(os.path.join('path', 'w:\ww', 'xxx', 'iii.txt')) # 輸出:w:\ww\xxx\iii.txt
4. 如果最后一個(gè)參數(shù)為''空,則生成的路徑以一個(gè)‘\’分隔符結(jié)尾
Demo4
import os print(os.path.join('path', 'www', 'xxx', 'iii')) # 輸出:path\www\xxx\iii print(os.path.join('path', 'www', 'xxx', 'iii', '')) # 輸出:path\www\xxx\iii\
5. 同時(shí)存在以‘./’與‘/’開始的參數(shù),以‘/’為主,從最后一個(gè)以‘/’開頭的參數(shù)開始拼接,之前的參數(shù)全部丟棄。
Demo5
import os print(os.path.join('path', 'www', 'xxx', 'iii')) # 輸出:path\www\xxx\iii print(os.path.join('path', './www', '/xxx', 'iii')) # 輸出:/xxx\iii print(os.path.join('path', './www', '/xxx/', 'iii')) # 輸出:/xxx/iii print(os.path.join('path', 'www', '/xxx', './iii')) # 輸出:/xxx\./iii print(os.path.join('path', 'www', '/xxx/', './iii')) # 輸出:/xxx/./iii
6. 只存在以“. / ”開始的子路徑,而不存在以“ / ”開頭的子路徑,則會(huì)將“. / ”里面的“ . ”當(dāng)作子路徑的一部分,進(jìn)行拼接。
Demo6
import os print(os.path.join('path', 'www', 'xxx', 'iii')) # 輸出:path\www\xxx\iii print(os.path.join('path', 'www', 'xxx', './iii')) # 輸出:path\www\xxx\./iii print(os.path.join('path', 'www', './xxx', 'iii')) # 輸出:path\www\./xxx\iii
總結(jié)
到此這篇關(guān)于Python中os.path.join函數(shù)用法的文章就介紹到這了,更多相關(guān)Python os.path.join函數(shù)用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)微秒級等待問題(windows)
這篇文章主要介紹了python實(shí)現(xiàn)微秒級等待問題(windows),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06Python 由字符串函數(shù)名得到對應(yīng)的函數(shù)(實(shí)例講解)
下面小編就為大家?guī)硪黄狿ython 由字符串函數(shù)名得到對應(yīng)的函數(shù)(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08Python 實(shí)現(xiàn)Numpy中找出array中最大值所對應(yīng)的行和列
今天小編就為大家分享一篇Python 實(shí)現(xiàn)Numpy中找出array中最大值所對應(yīng)的行和列,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11深入理解Python中的*args和**kwargs參數(shù)(示例代碼)
*args和**kwargs是Python函數(shù)編程中極其有用的特性,它們?yōu)楹瘮?shù)參數(shù)的處理提供了極大的靈活性和強(qiáng)大的功能,這篇文章主要介紹了Python中的*args和**kwargs參數(shù),需要的朋友可以參考下2024-06-06python GoogleIt庫實(shí)現(xiàn)在Google搜索引擎上快速搜索
這篇文章主要為大家介紹了python GoogleIt庫實(shí)現(xiàn)在Google搜索引擎上快速搜索功能探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01安裝pytorch報(bào)錯(cuò)torch.cuda.is_available()=false問題的解決過程
最近想用pytorch,因此裝了pytorch,但是碰到了問題,下面這篇文章主要給大家介紹了關(guān)于安裝pytorch報(bào)錯(cuò)torch.cuda.is_available()=false問題的解決過程,需要的朋友可以參考下2022-05-05Python中內(nèi)建模塊collections如何使用
在本篇內(nèi)容里小編給大家整理的是關(guān)于Python中內(nèi)建模塊collections的用法,有需要的朋友們可以參考下。2020-05-05Python EOL while scanning string literal問題解決方法
這篇文章主要介紹了Python EOL while scanning string literal問題解決方法,本文總結(jié)出是數(shù)據(jù)庫數(shù)據(jù)出現(xiàn)問題導(dǎo)致這個(gè)問題,需要的朋友可以參考下2015-04-04