python讀取文件名及后綴詳解
因?yàn)槟承┰颍枰x取d.lib后綴的文件,在此寫(xiě)下記錄
os.listdir()
語(yǔ)法:os.listdir(path)
函數(shù)用途:輸出路徑下所有文件的文件名
實(shí)驗(yàn)代碼:
假如我們需要讀取該文件夾所包含全部文件名

import os
path = "E:/vs_code/qtVideo/lib"
datanames = os.listdir(path)
for i in datanames:
print(i)
輸出:
A_TEST OpenCVConfig-version.cmake OpenCVConfig.cmake OpenCVModules-debug.cmake OpenCVModules-release.cmake OpenCVModules.cmake opencv_aruco330.lib opencv_aruco330d.lib opencv_bgsegm330.lib opencv_bgsegm330d.lib opencv_bioinspired330.lib opencv_bioinspired330d.lib opencv_calib3d330.lib opencv_calib3d330d.lib opencv_ccalib330.lib opencv_ccalib330d.lib opencv_core330.lib opencv_core330d.lib opencv_datasets330.lib opencv_datasets330d.lib opencv_dnn330.lib opencv_dnn330d.lib opencv_dpm330.lib opencv_dpm330d.lib opencv_face330.lib opencv_face330d.lib opencv_features2d330.lib opencv_features2d330d.lib opencv_flann330.lib opencv_flann330d.lib opencv_fuzzy330.lib opencv_fuzzy330d.lib opencv_highgui330.lib opencv_highgui330d.lib opencv_imgcodecs330.lib opencv_imgcodecs330d.lib opencv_imgproc330.lib opencv_imgproc330d.lib opencv_img_hash330.lib opencv_img_hash330d.lib opencv_line_descriptor330.lib opencv_line_descriptor330d.lib opencv_ml330.lib opencv_ml330d.lib opencv_objdetect330.lib opencv_objdetect330d.lib opencv_optflow330.lib opencv_optflow330d.lib opencv_phase_unwrapping330.lib opencv_phase_unwrapping330d.lib opencv_photo330.lib opencv_photo330d.lib opencv_plot330.lib opencv_plot330d.lib opencv_reg330.lib opencv_reg330d.lib opencv_rgbd330.lib opencv_rgbd330d.lib opencv_saliency330.lib opencv_saliency330d.lib opencv_shape330.lib opencv_shape330d.lib opencv_stereo330.lib opencv_stereo330d.lib opencv_stitching330.lib opencv_stitching330d.lib opencv_structured_light330.lib opencv_structured_light330d.lib opencv_superres330.lib opencv_superres330d.lib opencv_surface_matching330.lib opencv_surface_matching330d.lib opencv_text330.lib opencv_text330d.lib opencv_tracking330.lib opencv_tracking330d.lib opencv_video330.lib opencv_video330d.lib opencv_videoio330.lib opencv_videoio330d.lib opencv_videostab330.lib opencv_videostab330d.lib opencv_xfeatures2d330.lib opencv_xfeatures2d330d.lib opencv_ximgproc330.lib opencv_ximgproc330d.lib opencv_xobjdetect330.lib opencv_xobjdetect330d.lib opencv_xphoto330.lib opencv_xphoto330d.lib
結(jié)果分析:
os.listdir 以列表的形式返回指定文件夾的下所有內(nèi)容,不管是文件還是文件夾
os.path.splitext()
語(yǔ)法:os.path.splitext(文件名)
函數(shù)用途:將文件名和擴(kuò)展名分開(kāi)。
實(shí)驗(yàn)代碼:
name1 = "opencv_xphoto330d.lib"
name2 = "D:\\opencv_xphoto330d.lib"
result1 = os.path.splitext(name1)
result2 = os.path.splitext(name2)
print("result1:",result1)
print("result2:",result2)
print("type:",type(result1),type(result2))
輸出:
result1: ('opencv_xphoto330d', '.lib')
result2: ('D:\\opencv_xphoto330d', '.lib')
type: <class 'tuple'> <class 'tuple'>
結(jié)果分析:
就是以文件名中的'.'作為分隔符,分隔文件名稱與文件后綴,以元組的形式返回文件名與后綴。
os.path.split()
語(yǔ)法:os.path.split(path)
函數(shù)用途:返回文件的路徑和文件名。
實(shí)驗(yàn)代碼:
name1 = "opencv_xphoto330d.lib"
name2 = "E:\\vs_code\\qtVideo\\opencv_xphoto330d.lib"
name3 = "E:\\vs_code\\qtVideo"
result1 = os.path.split(name1)
result2 = os.path.split(name2)
result3 = os.path.split(name3)
print("result1:",result1)
print("result2:",result2)
print("result3:",result3)
print("type:",type(result1),type(result2),type(result3))
輸出:
result1: ('', 'opencv_xphoto330d.lib')
result2: ('E:\\vs_code\\qtVideo', 'opencv_xphoto330d.lib')
result3: ('E:\\vs_code', 'qtVideo')
type: <class 'tuple'> <class 'tuple'>
結(jié)果分析:
就是以路徑最后一個(gè)'/'或者'\\'為分隔,以元祖的形式返回路徑與文件名,若只有文件名,則輸出文件名與空。
案例分析
指定文件夾下包含.lib、d.lib、其他文件夾,需要獲得文件夾中所有d.lib后綴的文件名

思路:
通過(guò)listdir()獲得該文件夾下所有文件名,使用splitext()分離文件名和后綴,判斷文件名最后一個(gè)是否為d,后綴是否為lib
代碼實(shí)驗(yàn):
import os
path = "E:/vs_code/qtVideo/lib"
datanames = os.listdir(path)
for i in datanames:
if os.path.splitext(i)[1]=='.lib' and os.path.splitext(i)[0][-1]=='d':
print(i)
輸出:
opencv_aruco330d.lib opencv_bgsegm330d.lib opencv_bioinspired330d.lib opencv_calib3d330d.lib opencv_ccalib330d.lib opencv_core330d.lib opencv_datasets330d.lib opencv_dnn330d.lib opencv_dpm330d.lib opencv_face330d.lib opencv_features2d330d.lib opencv_flann330d.lib opencv_fuzzy330d.lib opencv_highgui330d.lib opencv_imgcodecs330d.lib opencv_imgproc330d.lib opencv_img_hash330d.lib opencv_line_descriptor330d.lib opencv_ml330d.lib opencv_objdetect330d.lib opencv_optflow330d.lib opencv_phase_unwrapping330d.lib opencv_photo330d.lib opencv_plot330d.lib opencv_reg330d.lib opencv_rgbd330d.lib opencv_saliency330d.lib opencv_shape330d.lib opencv_stereo330d.lib opencv_stitching330d.lib opencv_structured_light330d.lib opencv_superres330d.lib opencv_surface_matching330d.lib opencv_text330d.lib opencv_tracking330d.lib opencv_video330d.lib opencv_videoio330d.lib opencv_videostab330d.lib opencv_xfeatures2d330d.lib opencv_ximgproc330d.lib opencv_xobjdetect330d.lib opencv_xphoto330d.lib
可以看到我們把文件中的d.lib的文件都已經(jīng)篩選出來(lái)了
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Vim及其用于Python的自動(dòng)補(bǔ)全功能
Vim是一款功能強(qiáng)大的文本編輯器,常被作為Python開(kāi)發(fā)環(huán)境的首選,這篇文章主要介紹了用于?Python?的?Vim?自動(dòng)完成,需要的朋友可以參考下2023-09-09
Python實(shí)現(xiàn)的Excel文件讀寫(xiě)類
這篇文章主要介紹了Python實(shí)現(xiàn)的Excel文件讀寫(xiě)類,涉及Python針對(duì)Excel常見(jiàn)的讀寫(xiě)、打印等操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
Python+OpenCV進(jìn)行不規(guī)則多邊形ROI區(qū)域提取
ROI即感興趣區(qū)域。機(jī)器視覺(jué)、圖像處理中,從被處理的圖像以方框、圓、橢圓、不規(guī)則多邊形等方式勾勒出需要處理的區(qū)域,稱為感興趣區(qū)域,ROI。本文將利用Python和OpenCV實(shí)現(xiàn)不規(guī)則多邊形ROI區(qū)域提取,需要的可以參考一下2022-03-03
Python利用pdfplumber實(shí)現(xiàn)讀取PDF寫(xiě)入Excel
pdfplumber專注PDF內(nèi)容提取,例如文本(位置、字體及顏色等)和形狀(矩形、直線、曲線),還有解析表格的功能。本文主要為大家介紹如何利用pdfplumber實(shí)現(xiàn)讀取PDF寫(xiě)入Excel,需要的可以參考一下2022-06-06
python實(shí)現(xiàn)簡(jiǎn)單貪吃蛇小游戲
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單貪吃蛇小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06
Pytorch根據(jù)layers的name凍結(jié)訓(xùn)練方式
今天小編就為大家分享一篇Pytorch根據(jù)layers的name凍結(jié)訓(xùn)練方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01
Python實(shí)現(xiàn)投影法分割圖像示例(一)
今天小編就為大家分享一篇Python實(shí)現(xiàn)投影法分割圖像示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01
Pandas設(shè)置DataFrame的index索引起始值為1的兩種方法
DataFrame中的index索引列默認(rèn)是從0開(kāi)始的,那么我們?nèi)绾卧O(shè)置index索引列起始值從1開(kāi)始呢,本文主要介紹了Pandas設(shè)置DataFrame的index索引起始值為1的兩種方法,感興趣的可以了解一下2024-07-07
python統(tǒng)計(jì)文章中單詞出現(xiàn)次數(shù)實(shí)例
在本篇文章里小編給大家整理的是關(guān)于python統(tǒng)計(jì)文章中單詞出現(xiàn)次數(shù)實(shí)例,需要的朋友們參考學(xué)習(xí)下。2020-02-02

