使用Python的os模塊中的listdir函數獲取目錄中的文件列表

介紹

Python是一種流行的編程語言,具有強大的庫和模塊。其中一個有趣的模塊是os模塊,提供了與操作系統進行交互的方法。在本篇文章中,我們將專註於使用os模塊中的listdir函數獲取目錄中的文件列表的方法。這是一個非常常見的任務,我們將使用Python代碼演示如何獲取目錄中的文件列表。

正文

1. listdir函數的基本用法

listdir是os模塊中的函數,可以列出指定目錄中所有文件和文件夾的名稱。它的用法非常簡單,只需要向它傳遞一個目錄路徑即可:

import os

# 列出當前目錄下的文件和文件夾
files = os.listdir('.')
print(files)

運行上面的代碼後,會列出當前目錄下的所有文件和文件夾的名稱,並將它們存儲在一個list中。

2. 使用列表推導式過濾文件列表

listdir函數默認列出目錄中的所有文件和文件夾的名稱,但我們只需要列出其中的文件名稱,可以使用Python中的列表推導式來過濾結果:

import os

# 列出當前目錄下的所有文件名稱
files = [file for file in os.listdir('.') if os.path.isfile(os.path.join('.', file))]
print(files)

使用列表推導式,我們可以將文件夾排除在結果之外,只顯示文件名稱。

3. 使用遞歸函數列出子目錄中的文件

如果要列出目錄中所有子目錄中的文件,我們可以使用遞歸函數。下面的代碼演示了如何遞歸地列出目錄中的文件:

import os

def list_files(path):
    # 列出路徑中的所有文件和文件夾的名稱
    files = os.listdir(path)
    # 循環遍歷
    for file in files:
        # 判斷是否為文件
        if os.path.isfile(os.path.join(path, file)):
            # 如果是文件,則打印出文件名
            print(os.path.join(path, file))
        # 如果是目錄,則遞歸調用這個函數
        else:
            list_files(os.path.join(path, file))

# 列出當前目錄下的所有文件
list_files('.')

該函數使用os.listdir獲取指定目錄中所有文件和文件夾的名稱。然後,如果是一個文件,則打印出文件名;如果是一個目錄,則遞歸調用list_files函數來列出這個目錄中的文件。

4. 使用正則表達式過濾文件名

有時候,我們需要列出目錄中指定擴展名的所有文件,比如列出所有的.jpg文件。這時,我們可以使用正則表達式過濾文件名:

import os
import re

# 列出當前目錄下所有的.jpg文件
pattern = re.compile('.*\.jpg$')
files = [file for file in os.listdir('.') if re.match(pattern, file)]
print(files)

在上面的代碼中,我們使用re.compile創建了一個正則表達式模式,該模式匹配以.jpg結尾的文件名。然後使用列表推導式並且結合os.listdir,過濾出所有符合這個條件的文件名。

小結

在本篇文章中,我們重點介紹了使用os模塊中的listdir函數獲取目錄中的文件列表的方法,並從多個方面對該函數做了詳細的闡述:

  1. listdir函數的基本用法
  2. 使用列表推導式過濾文件列表
  3. 使用遞歸函數列出子目錄中的文件
  4. 使用正則表達式過濾文件名

通過這些方法,我們可以靈活地列出符合我們需求的文件列表。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/192201.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-01 09:56
下一篇 2024-12-01 09:56

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字符串操作中,capitalize函數常常被用到,這個函數可以使字符串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 單片機打印函數

    單片機打印是指通過串口或並口將一些數據打印到終端設備上。在單片機應用中,打印非常重要。正確的打印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的打印數據可以幫助我們快速…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python實現計算階乘的函數

    本文將介紹如何使用Python定義函數fact(n),計算n的階乘。 一、什麼是階乘 階乘指從1乘到指定數之間所有整數的乘積。如:5! = 5 * 4 * 3 * 2 * 1 = …

    編程 2025-04-29
  • Python定義函數判斷奇偶數

    本文將從多個方面詳細闡述Python定義函數判斷奇偶數的方法,並提供完整的代碼示例。 一、初步了解Python函數 在介紹Python如何定義函數判斷奇偶數之前,我們先來了解一下P…

    編程 2025-04-29
  • 分段函數Python

    本文將從以下幾個方面詳細闡述Python中的分段函數,包括函數基本定義、調用示例、圖像繪製、函數優化和應用實例。 一、函數基本定義 分段函數又稱為條件函數,指一條直線段或曲線段,由…

    編程 2025-04-29
  • Python函數名稱相同參數不同:多態

    Python是一門面向對象的編程語言,它強烈支持多態性 一、什麼是多態多態是面向對象三大特性中的一種,它指的是:相同的函數名稱可以有不同的實現方式。也就是說,不同的對象調用同名方法…

    編程 2025-04-29

發表回復

登錄後才能評論