重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
使用路徑對象glob()函數(shù)和rglob()函數(shù),可以查看指定路徑下的文件和子文件夾,兩者的區(qū)別在于,glob()函數(shù)只進(jìn)行一級查找,而rglob()函數(shù)會進(jìn)行多級查找。
成都創(chuàng)新互聯(lián)公司是一家以網(wǎng)絡(luò)技術(shù)公司,為中小企業(yè)提供網(wǎng)站維護(hù)、網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、網(wǎng)站備案、服務(wù)器租用、國際域名空間、軟件開發(fā)、成都小程序開發(fā)等企業(yè)互聯(lián)網(wǎng)相關(guān)業(yè)務(wù),是一家有著豐富的互聯(lián)網(wǎng)運(yùn)營推廣經(jīng)驗的科技公司,有著多年的網(wǎng)站建站經(jīng)驗,致力于幫助中小企業(yè)在互聯(lián)網(wǎng)讓打出自已的品牌和口碑,讓企業(yè)在互聯(lián)網(wǎng)上打開一個面向全國乃至全球的業(yè)務(wù)窗口:建站歡迎來電:18982081108
from pathlib import Path
p = Path('d:\\文件夾\\')
r = p.glob('*')
for i in r:
print(i) #顯示glob()函數(shù)的結(jié)果
print('-' * 25) #這里是分割線
r = p.rglob('*')
for i in r:
print(i)#顯示rglob()函數(shù)的結(jié)果
查看對應(yīng)結(jié)果如下:
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______________
自己組合吧。用os.getcwd得到當(dāng)前工作目錄。os.chdir改變當(dāng)前目錄
import os
os.chdir("/usr/local/include")
os.getcwd()
'/usr/local/include'
概述
使用os.path.abspath()函數(shù)來獲取文件絕對路徑
解析
文件目錄結(jié)構(gòu)如下:
假設(shè)app.py中想讀取config.ini文件的內(nèi)容,首先app.py需要知道config.ini的文件路徑,從目錄結(jié)構(gòu)上可以看出,config.ini與app.py的父目錄同級,也就是獲取到app.py父目錄(bin文件夾的路徑)的父目錄(config文件夾路徑)的絕對路徑再拼上config.ini文件名就能獲取到config.ini文件:
首先,在app.py中測試一下:
import os
def load_file():
# 獲取當(dāng)前文件路徑
current_path = os.path.abspath(__file__)
# 獲取當(dāng)前文件的父目錄
father_path = os.path.abspath(os.path.dirname(current_path) + os.path.sep + ".")
# config.ini文件路徑,獲取當(dāng)前目錄的父目錄的父目錄與congig.ini拼接
config_file_path=os.path.join(os.path.abspath(os.path.dirname(current_path) + os.path.sep + ".."),'config.ini')
print('當(dāng)前目錄:' + current_path)
print('當(dāng)前父目錄:' + father_path)
print('config.ini路徑:' + config_file_path)
load_file()
#out:
從結(jié)果中可以看到一切都正常,沒有什么問題,假如現(xiàn)在需要從main.py中執(zhí)行app.py的load_file()方法呢?
來測試一下:
main.py(處于同級目錄):
from bin.app import load_file
if __name__=='__main__':
load_file()
#out:
可以看到,獲取的路徑是完全沒有問題的
拓展內(nèi)容
python os.path 常用模塊介紹
os.path.abspath(path)?返回path規(guī)范化的絕對路徑(但這個路徑不一定是真實的路徑),如果path僅是一個文件名,使用該函數(shù)后返回的路徑是當(dāng)前工作目錄路徑連接改文件名后所組成的新的路徑名。
import os.path
os.path.abspath("a.py")
'C:\\Users\\Administrator\\a.py'
os.path.split(path)?將path分割成目錄和文件名二元組返回
os.path.split("C:\\Users\\Administrator\\a.py")
('C:\\Users\\Administrator', 'a.py')
os.path.dirname(path)?返回path的目錄,其實就是os.path.split(path)的第一個元素
os.path.dirname("C:\\Users\\Administrator\\a.py")
'C:\\Users\\Administrator'
os.path.basename(path)?返回path最后的文件名。如果path以/或\結(jié)尾,就會返回空值。即os.path.split(path)的第二個元素。
os.path.basename("C:\\Users\\Administrator\\a.py")
'a.py'
os.path.commonprefix(list)?返回list中所有path共有的最長的路徑,從左向右,相同字符。
os.path.exists(path)?如果path存在,返回True;如果path不存在,返回False。
os.path.isabs(path)?如果path是絕對路徑,返回True。
os.path.normpath(path)?規(guī)范path字符串形式(規(guī)范文件路徑)
os.path.isfile(path)?判斷路徑是否為文件,是返回True,否則返回False
os.path.isdir(path)?如果path是一個存在的目錄,返回True,否則返貨False。
os.path.islink(path)?是否是鏈接;但如果系統(tǒng)不支持鏈接,則返回False。