最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中列出目錄中的文件的五種方法小結

 更新時間:2023年02月28日 09:02:03   作者:趙卓不凡  
本文主要介紹了Python中列出目錄中的文件的五種方法小結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

1. 引言

文件和目錄相關操作是軟件工程師必備的基本技能。
我不是說將一個文件復制到Windows文件資源管理器上的另一個文件夾中。
我是說使用代碼來進行自動化批量處理操作。
今天,我們將深入探討一個具體問題:

如何根據(jù)需要列出特定目錄下的所有文件名?

我將介紹5種用Python實現(xiàn)的方法。不同的方法適用于不同的使用場景。

2. 使用os.listdir()

使用Python中的os模塊下的方法listdir()是一個不錯的選擇,樣例如下:

>>> import os
>>> os.listdir()

上面的代碼將打印當前路徑下所有文件和目錄的名稱。
如果我們想基于特定路徑來打印結果,只需傳遞給函數(shù)os.listdir() 相應的參數(shù),舉例如下:

>>> os.listdir(myPath)

如果我們只想打印所有文件不包含目錄,那么我們可以使用os.path.isfile() 來進行相應的過濾,如下:

>>> import os
>>> files = [f for f in os.listdir() if os.path.isfile(f)]

當然,對于目錄,同樣可以使用函數(shù)os.path.isdir() 進行過濾,代碼如下:

import os
files = [f for f in os.listdir() if os.path.isdir(f)]

如果我們只需要特定類型的文件怎么辦?
完全不用擔心。Python為復雜場景提供了更多選擇。

3. 使用os.walk()

os模塊中還有另一個方法 os.walk() 。顧名思義,它可以一層一層地“遍歷”目錄樹。當我們調(diào)用os.walk() 函數(shù)時,它將返回一個生成器。此時每次調(diào)用next() 方法生成下一個值時,它都會進入到一個layer ,結果是一個包含3個項的元組:(dirpath、dirname、filename) 。

舉例,如果要獲取第二層中所有文件夾的名稱,代碼如下所示:

from os import walk

f = []
layer = 1
w = walk("/Users/zhao")
for (dirpath, dirnames, filenames) in w:
? ? if layer == 2:
? ? ? ? f.extend(dirnames)
? ? ? ? break
? ? layer += 1

4. 在Glob模塊中使用正則表達式

有時我們不想獲取所有文件的名稱,而是希望精確獲取特定類型文件的名稱。
由于glob模塊能夠添加用于搜索的正則表達式,因此它將是我們進行此類操作的首選。

>>> import glob
>>> glob.glob("/sys/*.log")

上面的代碼將列出以log 結尾的文件名。

5. 使用pathlib

從Python 3.4開始,有一個名為pathlib 的模塊也很有用。
借助列表生成式的技巧,我們只需使用一行代碼即可生成當前路徑的所有文件名:

import pathlib

files = [f for f in pathlib.Path().iterdir() if f.is_file()]

令人奇怪的是,Path() 還附帶了glob() 函數(shù)。(無需在Python文件頂部顯式導入glob模塊)

import pathlib

files = [f for f in pathlib.Path().glob("/sys/*.log")]

6. 使用os.scandir()

經(jīng)典的os.listdir() 函數(shù)很直觀,但對于包含大量文件的大型目錄來說效率并不高。因此,Python 3.5引入了一個新的功能類似的函數(shù)os.scandir() 。
是的,有的同學可能已經(jīng)猜到了。此函數(shù)將返回一個生成器,并不是所有名稱的列表。在某些情況下,我們并不需要同時獲取所有名稱,此時會更有效。

>>> a=os.scandir()
>>> next(a)
<DirEntry 'test1.py'>
>>> next(a)
<DirEntry 'test2.py'>

7. 總結

本文重點介紹了在Python中如何列出目錄中的文件的五種方法,并針對每種方法給出了相應的代碼樣例。

到此這篇關于Python中列出目錄中的文件的五種方法小結的文章就介紹到這了,更多相關Python 列出目錄文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python3 用matplotlib繪制sigmoid函數(shù)的案例

    Python3 用matplotlib繪制sigmoid函數(shù)的案例

    這篇文章主要介紹了Python3 用matplotlib繪制sigmoid函數(shù)的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 如何通過Python實現(xiàn)標簽云算法

    如何通過Python實現(xiàn)標簽云算法

    這篇文章主要介紹了如何通過Python實現(xiàn)標簽云算法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • 如何在sae中設置django,讓sae的工作環(huán)境跟本地python環(huán)境一致

    如何在sae中設置django,讓sae的工作環(huán)境跟本地python環(huán)境一致

    這篇文章主要介紹了如何在sae中設置django,讓sae的工作環(huán)境跟本地python環(huán)境一致,需要的朋友可以參考下
    2017-11-11
  • Python3顯示當前時間、計算時間差及時間加減法示例代碼

    Python3顯示當前時間、計算時間差及時間加減法示例代碼

    這篇文章主要給大家介紹了關于Python3顯示當前時間、計算時間差及時間加減法的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Python3具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-09-09
  • 詳解Python Matplot中文顯示完美解決方案

    詳解Python Matplot中文顯示完美解決方案

    這篇文章主要介紹了Python Matplot中文顯示完美解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • Python中random函數(shù)的用法整理大全

    Python中random函數(shù)的用法整理大全

    random庫是使用隨機數(shù)的Python標準庫,random庫主要用于生成隨機數(shù),下面這篇文章主要給大家介紹了關于Python?random函數(shù)用法的相關資料,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • Python利用標簽實現(xiàn)清理微信好友的自動化腳本

    Python利用標簽實現(xiàn)清理微信好友的自動化腳本

    微信已經(jīng)成為我們?nèi)粘I钪胁豢苫蛉钡纳缃还ぞ?隨著使用時間的增長,我們的微信好友列表可能會變得越來越臃腫,所以本文為大家準備了通過標簽清理微信好友的Python自動化腳本,希望對大家有所幫助
    2024-12-12
  • python的class類調(diào)用方式和封裝思想

    python的class類調(diào)用方式和封裝思想

    面向?qū)ο缶幊蹋∣OP)是一種程序設計思想,以類和對象創(chuàng)建模型以描述真實世界,可使程序維護和擴展更簡單,提高程序開發(fā)效率,面向?qū)ο蠛兔嫦蜻^程是兩種主要的編程思想,面向?qū)ο蟮某绦蛞詫ο笞鳛槌绦虻幕締卧?/div> 2024-10-10
  • Python Pandas數(shù)據(jù)結構簡單介紹

    Python Pandas數(shù)據(jù)結構簡單介紹

    這篇文章主要介紹了Python Pandas數(shù)據(jù)結構簡單介紹的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • python的ArgumentParser使用及說明

    python的ArgumentParser使用及說明

    這篇文章主要介紹了python的ArgumentParser使用及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評論

武城县| 津市市| 呼图壁县| 南陵县| 榆林市| 磴口县| 习水县| 商洛市| 安化县| 石柱| 慈溪市| 大连市| 临沂市| 凤冈县| 普定县| 仁寿县| 通江县| 宿迁市| 松桃| 伽师县| 罗甸县| 长白| 泸定县| 土默特左旗| 汝南县| 乐陵市| 连州市| 永福县| 兴化市| 廊坊市| 瑞丽市| 安吉县| 静海县| 宁国市| 丰顺县| 铜鼓县| 沧源| 大英县| 焉耆| 崇左市| 巴青县|