亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python獲取文件夾下的所有文件路徑小結(jié)

 更新時(shí)間:2023年10月07日 11:19:33   作者:程序員小麥  
在Python編程過(guò)程中,需要獲取某一個(gè)文件目錄下的所有文件,或獲取文件目錄下的所有指定后綴名的文件等,本文主要介紹了Python獲取文件夾下的所有文件路徑,感興趣的可以了解一下

在Python編程過(guò)程中,我們常常有這樣的需求,需要獲取某一個(gè)文件目錄下的所有文件,或獲取文件目錄下的所有指定后綴名的文件,亦或要求獲取該文件所在的文件夾,還有可能需要替換文件名,刪除文件夾。針對(duì)這些問題,本文系統(tǒng)總結(jié)了這些方法,以供大家參考。

本實(shí)例的文件夾放置在桌面,路徑為:C:\Users\Smile\Desktop\周匯報(bào),該文件夾下有個(gè)子文件夾,子文件夾有一個(gè)pdf文件。

1、獲取文件夾下的所有文件路徑

這里推薦使用os模塊下的listdir方法,該方法可以獲取該文件夾下的所有文件名稱(包含子文件夾名稱),之后配合os.path.join方法來(lái)獲取該文件夾下的所有文件路徑。

import os
dir_path = r'C:\Users\Smile\Desktop\周匯報(bào)'
file_ls = os.listdir(dir_path)  #獲取所有文件名稱
file_ls

運(yùn)行結(jié)果如下:

我們可以發(fā)現(xiàn),結(jié)果不僅包括了文件名,還包括了子文件夾名。

獲取完整路徑,在上面基礎(chǔ)上使用1行代碼即可:

file_ls = [os.path.join(dir_path, file) for file in file_ls]
file_ls

如上圖可以發(fā)現(xiàn)獲取了指定文件夾下的所有文件路徑,還包括了子文件夾路徑。但是如果我們想要連帶獲取子文件夾下的文件名該如何操作?

解決方案就是通過(guò)os.walk方法進(jìn)行。它返回3個(gè)參數(shù)——根目錄、根目錄下的所有文件、根目錄下的子文件夾。它的神奇之處在于獲取根目錄子文件夾后會(huì)繼續(xù)循環(huán),依次取出根目錄下子文件夾下的文件。

path = r'C:\Users\Smile\Desktop\周匯報(bào)'
for root, dirs, files in os.walk(path):
    print(root)

運(yùn)行的結(jié)果為:

C:\Users\Smile\Desktop\周匯報(bào)
C:\Users\Smile\Desktop\周匯報(bào)\數(shù)據(jù)

可以發(fā)現(xiàn)在實(shí)驗(yàn)中循環(huán)了兩次,這里指定輸出當(dāng)前循環(huán)的根目錄,第一次循環(huán)遍歷了根目錄下的文件,由于該根目錄下存在子文件夾,所以又循環(huán)了一次以獲取子文件夾下的文件,所以第二次循環(huán)輸出的根目錄為子文件夾的位置。

對(duì)此,我們可以確定,如果在循環(huán)外面指定一個(gè)空列表。在每一次循環(huán)時(shí)將文件名與根目錄進(jìn)行拼接并添加到空列表中,就可以得到根目錄下所有的文件路徑。

path = r'C:\Users\Smile\Desktop\周匯報(bào)'
file_ls = []
for root, dirs, files in os.walk(path):
    root_file_ls = [os.path.join(root, file) for file in files]
    file_ls.append(root_file_ls)
file_ls

結(jié)果如下:

結(jié)果中可以看到,位于子文件夾下的文件也被添加到文件路徑列表了。

2、獲取后綴名

這里可以使用os.path.splitext方法來(lái)分割路徑,它將路徑分為兩個(gè)部分,一個(gè)是后綴名,另一個(gè)是除后綴名之外的部分。

file = r'C:\\Users\\Smile\\Desktop\\周匯報(bào)\\第六周總結(jié)_20221024_20221030.pptx'``houzhui = os.path.splitext(file)[1]``houzhui``   ``--結(jié)果--``'.pptx'

3、獲取指定后綴名的文件

路徑的本質(zhì)是字符串,可以使用endswith方法來(lái)判斷路徑是否以某個(gè)字符結(jié)尾。現(xiàn)在將r’C:\Users\Smile\Desktop\周匯報(bào)’直接路徑下(不含子文件夾)的所有docx文件輸出。

path = r'C:\Users\Smile\Desktop\周匯報(bào)'
file_ls = []
for root, dirs, files in os.walk(path):
    root_file_ls = [os.path.join(root, file) for file in files]
    file_ls.append(root_file_ls)
#因?yàn)樯厦嫜h(huán)了兩次,第二次是子文件夾的文件,所以取出第1個(gè)元素
#使用endswith判斷是否以docx結(jié)尾
file_ls = [file for file in file_ls[0] if file.endswith('.docx')]
file_ls

結(jié)果如下:

可以看出已經(jīng)將所有的docx文件輸出。

4、修改文件名

使用os.rename(old_name, new_name)來(lái)進(jìn)行。

例子我就不舉了,太累了~~~

不過(guò)要提醒一點(diǎn),old_name和new_name都是路徑。

5、刪除/移動(dòng)文件

刪除文件使用os.remove(路徑名)

移動(dòng)文件需要使用shuilt庫(kù),語(yǔ)法如下:

import shutil
shutil.move(old_name, new_name)

6、獲取文件所在的文件夾

使用os.path.dirname(path)即可獲取

path = r'C:\\Users\\Smile\\Desktop\\周匯報(bào)\\第001周總結(jié)_20220919_20220925.docx'
os.path.dirname(path)

--結(jié)果--
'C:\\\\Users\\\\Smile\\\\Desktop\\\\周匯報(bào)'

7、移除文件夾

1.如果使用os.remove(path),此時(shí)的文件夾必須是空文件夾,否則會(huì)報(bào)錯(cuò)。

2.如果是非空文件夾,使用shutil.rmtree(path)即可成功刪除。

對(duì)于文件路徑的操作主要有:文件路徑獲取、后綴名獲取、獲取指定后綴名文件、刪除/移動(dòng)文件、替換文件名、獲取文件所在的文件夾、移除文件夾。

到此這篇關(guān)于Python獲取文件夾下的所有文件路徑小結(jié)的文章就介紹到這了,更多相關(guān)Python獲取所有文件路徑內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python樹莓派通過(guò)隊(duì)列實(shí)現(xiàn)進(jìn)程交互的程序分析

    python樹莓派通過(guò)隊(duì)列實(shí)現(xiàn)進(jìn)程交互的程序分析

    這篇博客就結(jié)合實(shí)際的python程序通過(guò)隊(duì)列實(shí)現(xiàn)進(jìn)程交互,通過(guò)程序分析需要的庫(kù)函數(shù),對(duì)python樹莓派進(jìn)程交互相關(guān)知識(shí)感興趣的朋友一起看看吧
    2021-07-07
  • Python的f-string使用技巧

    Python的f-string使用技巧

    Python很早就引入了一種稱為 f-string 的字符串格式化方法,它代表格式化字符串字面值,本文主要介紹了Python的f-string使用技巧,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • Python使用while循環(huán)花式打印乘法表

    Python使用while循環(huán)花式打印乘法表

    今天小編就為大家分享一篇關(guān)于Python使用while循環(huán)花式打印乘法表,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • 基于pyinstaller超級(jí)加密操作(加殼和轉(zhuǎn)c)

    基于pyinstaller超級(jí)加密操作(加殼和轉(zhuǎn)c)

    這篇文章主要介紹了基于pyinstaller超級(jí)加密操作 (加殼和轉(zhuǎn)c),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • python使用ProjectQ生成量子算法指令集

    python使用ProjectQ生成量子算法指令集

    在量子計(jì)算機(jī)領(lǐng)域,由于實(shí)現(xiàn)方案的不同,在不同的體系內(nèi)的指令集其實(shí)是不一樣的,并不是說(shuō)OpenQASM里面的所有指令都會(huì)被支持。但是這也沒有關(guān)系,因?yàn)楸疚膶⒁榻B的開源量子計(jì)算模擬器框架ProjectQ可以支持將輸入的量子算法分解到對(duì)應(yīng)的指令集中。
    2021-05-05
  • 使用PyTorch訓(xùn)練一個(gè)圖像分類器實(shí)例

    使用PyTorch訓(xùn)練一個(gè)圖像分類器實(shí)例

    今天小編就為大家分享一篇使用PyTorch訓(xùn)練一個(gè)圖像分類器實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • Python中協(xié)程用法代碼詳解

    Python中協(xié)程用法代碼詳解

    這篇文章主要介紹了Python中協(xié)程用法代碼詳解,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • Python字符編碼與函數(shù)的基本使用方法

    Python字符編碼與函數(shù)的基本使用方法

    下面小編就為大家?guī)?lái)一篇Python字符編碼與函數(shù)的基本使用方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • Python Spyder 調(diào)出縮進(jìn)對(duì)齊線的操作

    Python Spyder 調(diào)出縮進(jìn)對(duì)齊線的操作

    這篇文章主要介紹了Python Spyder 調(diào)出縮進(jìn)對(duì)齊線的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • Python Paramiko模塊中exec_command()和invoke_shell()兩種操作區(qū)別

    Python Paramiko模塊中exec_command()和invoke_shell()兩種操作區(qū)別

    invoke_shell 使用 SSH shell channel,而 exec_command 使用 SSH exec channel,本文主要介紹了Python Paramiko模塊中exec_command()和invoke_shell()兩種操作區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02

最新評(píng)論