使用路徑對象glob()函數和rglob()函數,可以查看指定路徑下的文件和子文件夾,兩者的區(qū)別在于,glob()函數只進行一級查找,而rglob()函數會進行多級查找。
創(chuàng)新互聯(lián)專注于谷城企業(yè)網站建設,響應式網站,商城網站制作。谷城網站建設公司,為谷城等地區(qū)提供建站服務。全流程按需求定制制作,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務
from pathlib import Path
p = Path('d:\\文件夾\\')
r = p.glob('*')
for i in r:
print(i) #顯示glob()函數的結果
print('-' * 25) #這里是分割線
r = p.rglob('*')
for i in r:
print(i)#顯示rglob()函數的結果
查看對應結果如下:
d:\11\11.txt
d:\11\r.mp3
d:\11\t.mp3
d:\11\tp1000
d:\11\文件夾
-------------------------
d:\11\11.txt
d:\11\r.mp3
d:\11\t.mp3
d:\11\tp1000
d:\11\文件夾
d:\11\文件夾\文檔.txt
________________END______________
為實現(xiàn)“按名存取”,必須建立文件名與輔存空間中物理地址的對應關系,體現(xiàn)這種對應關系的數據結構稱為文件目錄。文件目錄表目至少要包含文件名、文件的類型、文件的長度、訪問權限、建立時間、訪問時間和文件存儲地址等內容。通過前面一章的介紹,我們已經知道在文件信息中已經包含了文件名、文件類型訪問權限等信息,而存儲地址的信息則包含在目錄信息中。
16.1路徑
路徑通常用一個字符串來表示,可以按照路徑信息定位到一個目錄或文件。如:“C:UsersAdministratorPictures1.jpg”這個信息可以非常方便的找到這個圖片文件,“C:UsersAdministratorPictures”這個信息可以幫助我們找到更多的圖片文件。
這里所說的“路徑”和上網時碰到的“地址”含義比較相似,互聯(lián)網就相當于將個人電腦可以訪問的范圍擴大了,互聯(lián)網中的地址也是對應某一個存儲空間的路徑,按照地址可以訪問互聯(lián)網上的信息,就如同按照路徑可以找到計算機中的文件一樣。
在Python中,可以導入 os模塊 來進行目錄操作。
1、獲取當前工作目錄getcwd()函數
例:
import os
print(os.getcwd())
運行結果:
C:UsersAdministratorAppDataLocalProgramsPythonPython38
這個路徑是當前Python IDLE所在的地址。
2、獲取文件的絕對路徑abspath()函數
abspath()函數是os模塊的子模塊path提供的一個函數。用法舉例如下:
import os
print(os.path.abspath(r'test.txt'))
運行結果:
C:UsersAdministratorAppDataLocalProgramsPythonPython38 est.txt
16.2 目錄操作類函數
1、判斷目錄是否存在exists()函數
exists()函數是os模塊的子模塊path中的函數。使用方法舉例如下:
import os
print(os.path.exists(r'C:UsersAdministratorPictures1.jpeg'))
輸出結果:
True
2、創(chuàng)建目錄mkdir()函數和makedirs()函數
mkdir()函數和makedirs()函數都是由os模塊提供的,下面舉例說明用法和區(qū)別。
例1:
import os
path='d:test'
if not os.path.exists(path):
os.makedirs(path)
print('該文件目錄創(chuàng)建成功!')
如果目錄d: est已存在,則不再創(chuàng)建;若不存在,則創(chuàng)建。
例2:
import os
path='d:testtest1test11'
if not os.path.exists(path):
os.makedirs(path)
print('該文件目錄創(chuàng)建成功!')
雖然目錄d: est已存在,但可以在其下繼續(xù)創(chuàng)建子目錄。上面的代碼可以成功地創(chuàng)建d: est est1 est11目錄。
mkdir()函數和makedirs()函數用法基本一樣,不同之處在于mkdir()函數只能能創(chuàng)建一級目錄。
3、刪除目錄函數rmdir()函數
rmdir()函數是由os模塊提供的。
例如:通過上面的例子已經建立了d: est est1 est11目錄,現(xiàn)在去刪除子目錄test11(此子目錄為空目錄),代碼如下:
import os
os.rmdir('d:testtest1test11')
如果要刪除的目錄非空(其下還包含有文件或文件夾),則不能刪除,并且出現(xiàn)Windows文件操作錯誤的提示(Python是調用操作系統(tǒng)命令完成文件和目錄操作的)。譬如d: est目錄下含有有子目錄,則不能對其進行如下刪除操作。
import os
os.rmdir('d:test')
此時,會出現(xiàn)如下錯誤提示:
Traceback (most recent call last):
File "C:/Users/zym/AppData/Local/Programs/Python/Python39/4.py", line 10, in
os.rmdir('d:test')
OSError: [WinError 145] 目錄不是空的。: 'd:test'
4、刪除非空目錄函數rmtree()函數
rmtree()函數是由Python內置的標準模塊shutil提供的,可以刪除目錄及目錄下的文件和子目錄。如刪除d: est目錄及其下的子目錄和文件,可用如下代碼:
import shutil
shutil.rmtree('d:test')
5、遍歷目錄walk()函數
walk()函數是由os模塊提供的。
語法格式:
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
其中,top是所要遍歷的目錄的地址;topdown為可選參數,為 True時自上而下遍歷 目錄,為False時自下而上遍歷目錄,默認值為True;onerror為可選參數,用于指定異常處理方式,默認為忽略;followlinks為可選參數,如果為 True,則會遍歷目錄下的快捷方式(linux 下是軟連接 symbolic link )實際所指的目錄(默認關閉),如果為 False,則優(yōu)先遍歷 top 的子目錄。
該函數的返回值為一個三元組(root,dirs,files)。root 所指的是當前正在遍歷的這個文件夾的本身的地址;dirs 是一個 list ,內容是該文件夾中所有的目錄的名字(不包括子目錄);files 同樣是 list , 內容是該文件夾中所有的文件(不包括子目錄)。
例:遍歷d: est目錄及其子目錄下的所有子目錄和文件:
d: est目錄及其下的子目錄和文件
import os
path='d:test'
tups=os.walk(path) # 函數walk()的返回值為三元組
for root,dirs,files in tups: # 遍歷這個三元組
for name in dirs: #遍歷存放目錄值的元組
print('dir:',os.path.join(root,name))
for name in files: #遍歷存放文件名值的元組
print('file:',os.path.join(root,name))
運行結果如下:
dir: d: est est1
dir: d: est est1 est11
dir: d: est est1新建文件夾
file: d: est est1新建文本文檔.txt
file: d: est est1 est11新建文本文檔.txt
Python中文件路徑共分為兩種:絕對路徑和相對路徑
1、絕對路徑就是文件的真正存在的路徑,是指從硬盤的根目錄(盤符)開始,進行一級級目錄指向文件。
2、 相對路徑是以當前文件為基準進行一級級目錄指向被引用的資源文件。
其中大小寫不影響windows定位到文件
python 文件路徑書寫方式有兩種:
方法一:使用轉義字符
filePath = 'E:\Temp\test'
方法二:使用r聲明字符串
filePath = r'E:\Temp\test'
上述寫法中"\ “為字符串中的特殊字符,加上r后變?yōu)樵甲址?,則不會對字符串中的”\t"、"\r" 進行字符串轉義。
文章標題:python文件路徑函數 python文件路徑獲取
網頁鏈接:http://muchs.cn/article22/hgsicc.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站制作、做網站、App設計、網站策劃、、網站內鏈
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)