Python os.listdir()方法

很有可能我們在生活中遇到過很多這樣的情況,我們想知道一個目錄(文件夾)中有多少文件,有哪些文件。或者,有時我們必須尋找一個文件,我們知道它的名稱,但不知道它在哪個文件夾中。在這種情況下,留給我們的唯一選擇是在目標目錄中查找文件。

現在,對我們許多人來說,思考似乎很容易;我們只要去目錄里找找就行了。這是一個可能的選項,但是這個選項只有在該目錄中只有少量文件時才有效。只有這樣,我們才能手動訪問該目錄並查找那裡存在的文件。但是,在目標目錄中存在大量文件的情況下,假設有數千個文件。在這種情況下,該選項將不起作用,因為要花很長時間(甚至很多天)來搜索目標目錄中是否存在一個特定的文件,而目標目錄中有成千上萬個文件。如果我們必須在有成千上萬個文件的目錄中找到一個同名文件,這似乎是我們應該做的。

我們可以通過文件資源管理器搜索名稱,但是如果我們這樣做,也將花費大量時間,不像前面的選項那樣,但是是的,需要大量時間。這是因為文件資源管理器將掃描目錄中的每個文件,我們必須等待很長時間,直到完成對磁碟的掃描。

但是,如果我們說我們已經提供了目標目錄或路徑中存在的所有文件的名稱,會怎麼樣呢?然後,我們將很容易檢查指定的文件是否存在於目標路徑中,它還顯示了我們需要從哪裡獲取目標目錄中所有文件的名稱。

如果給我們一個文本形式的目錄中所有文件的名稱列表,我們只需要在搜索欄中鍵入特定文件的名稱。然後,幾乎不需要一秒鐘就能發現文件是否在名字列表中。因此,我們可以理解,擁有一個可以列印目錄或路徑中所有文件名稱列表的方法是多麼重要。

Python 為我們提供了這樣的方法,我們可以在其中列印名稱列表,其中一個方法是「os」模塊的 listdir()函數。我們將在本教程中學習 listdir()方法,並在 Python 程序中使用它來列印指定路徑中所有文件的名稱列表。

Python 中的 os.listdir()方法

listdir()函數是 os 模塊提供的一個函數,通過使用這個函數,我們可以列印指定路徑中存在的所有文件的名稱列表。如果我們想列印當前工作目錄(程序所在的目錄)中的文件列表,也可以使用 listdir()方法。每當需要獲取指定目錄中所有文件的名稱時,我們都可以使用 listdir()方法。

os.listdir()函數的語法:

以下是在os模塊中使用 listdir()函數的語法:


>> os.listdir(pathSpecified)

參數:

正如我們在上面給出的語法中看到的,我們只在 listdir()方法中給出了一個參數。listdir()函數採用以下路徑參數:

  • pathSpecified: 在這裡,pathSpecified 變數表示目標目錄的路徑,我們希望從中知道所有文件的名稱。這是 listdir()函數中的一個可選參數,如果我們不在函數中提供指定的路徑,那麼它將列印當前工作目錄中的所有文件名。

返回類型:

listdir()函數的返回類型是「list 」,因為它返回指定目錄中所有文件的名稱列表。

方法:實現:

為了理解 listdir()函數的工作和實現,我們將在一個示常式序中使用它,並從中列印文件名列表。我們將 listdir()函數的實現部分分為以下兩部分:

  1. 從當前工作目錄列印文件名
  2. 從指定路徑列印文件名

我們將為每個類別使用一個示常式序,並獲取每個方法中的文件名。

方法 1:從當前工作目錄列印文件名:

在這種方法中,我們將使用 os 模塊的另一個函數,即 getcwd()函數列印當前工作目錄中的文件名列表。看下面的示常式序來理解這個方法的實現:

例 1:

看看下面的 Python 程序,其中我們使用了帶有路徑參數的 os.listdir()方法:


# Import os module
import os
# Use getcwd() function
pathSpecified = os.getcwd()
# Using listdir() function
listOfFileNames = os.listdir(pathSpecified)
# Print the name of all files in the current working directory
print("Following is the list of names of all the files present in the current working directory: ")
print(listOfFileNames)

輸出:

Following is the list of names of all the files present in the current working directory: 
['.ipynb_checkpoints', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36_.pdf', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36__19.jpg', '1527589430558.jpg', '1605467180870.png', '1605467180879.png', '160591-fruit-template-16x9.pptx', '1613034967066.jpg', '1613034967083.jpg', '1613035079325.jpg', '1613035270313.jpg', '1616159417742.jpg', '1616159417758.jpg', ???., Windows11InstallationAssistant.exe', 'WindowsPCHealthCheckSetup.msi', 'Word frequency Python.edited.docx', 'wrong.jpg', 'X-ray image.png', 'XML-data.xml', 'yemen500.png', 'zambia-500.png', 'zimbabwe-500.png', 'ZoomInstaller (1).exe', 'ZoomInstaller.exe', '__pycache__', '~$EOC CERTIFICATE.pptx']

如我們所見,當前工作目錄中所有文件的名稱都列印在程序的輸出中。

說明:

在程序中導入 os 模塊後,我們使用了 getcwd()函數來獲取當前工作目錄的路徑。我們已經初始化了一個名為「路徑指定」的變數,並將當前工作目錄的路徑存儲在這個變數中。之後,我們在另一個初始化的變數,即 listOfFileNames 中使用了 listdir()函數來存儲這個變數中所有文件的名稱。我們在 listdir()函數中為當前工作路徑提供了一個初始化變數作為參數,最後,我們使用 print 語句列印了輸出中所有名稱的列表。

如果我們不想在程序中使用任何其他函數,那麼我們也可以從程序所在的當前目錄中獲取所有文件名。我們只需要保留 listdir()函數,而不是提供任何目錄的路徑作為參數,之後,程序在執行時會給出當前目錄中所有名稱的列表,作為輸出的結果。看下面的示常式序來理解這個方法的實現:

例 2:

看看下面的 Python 程序,其中我們使用了 os.listdir()方法,沒有任何參數:


# Import os module
import os
# Using listdir() function
listOfFileNames = os.listdir()
# Print the name of all files in the current working directory
print("Following is the list of names of all the files present in the current working directory: ")
print(listOfFileNames)

輸出:

Following is the list of names of all the files present in the current working directory: 
['.ipynb_checkpoints', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36_.pdf', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36__19.jpg', '1527589430558.jpg', '1605467180870.png', '1605467180879.png', '160591-fruit-template-16x9.pptx', '1613034967066.jpg', '1613034967083.jpg', '1613035079325.jpg', '1613035270313.jpg', '1616159417742.jpg', '1616159417758.jpg', ???., Windows11InstallationAssistant.exe', 'WindowsPCHealthCheckSetup.msi', 'Word frequency Python.edited.docx', 'wrong.jpg', 'X-ray image.png', 'XML-data.xml', 'yemen500.png', 'zambia-500.png', 'zimbabwe-500.png', 'ZoomInstaller (1).exe', 'ZoomInstaller.exe', '__pycache__', '~$EOC CERTIFICATE.pptx']

如我們所見,在程序執行後,輸出中會列印出安裝 Python 的當前文件中所有文件的名稱列表。

說明:

在這個程序中,我們省略了 path 參數,仍然獲得當前工作目錄中所有文件的名稱列表。如果我們想從當前工作目錄中獲得所有文件的名稱列表,我們會更喜歡使用這個方法。因為在這個方法中,我們不需要使用任何參數或定義任何路徑變數,因此它節省了我們程序中任何額外的代碼行,並節省了我們的時間。

方法 2:從指定路徑列印文件名:

在這個方法中,我們可以通過在 listdir()函數中提供目錄的指定路徑來獲得指定目錄中所有文件的名稱列表。我們可以從文件的屬性選項中獲得目錄的路徑,然後我們可以在程序中使用相同的文件。看下面的示常式序來理解這個方法的實現:

例 3:

看看下面的 Python 程序,其中我們使用了帶有路徑參數的 os.listdir()方法:


# Import os module
import os
# Define the specified path
pathSpecified = " C:\Users\Manish\Downloads"
# Using listdir() function
listOfFileNames = os.listdir(pathSpecified)
# Print the name of all files in directory
print("Following is the list of names of all the files present in the specified directory: ")
print(listOfFileNames)

輸出:

Following is the list of names of all the files present in the specified directory: 
['.ipynb_checkpoints', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36_.pdf', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36__19.jpg', '1527589430558.jpg', '1605467180870.png', '1605467180879.png', '160591-fruit-template-16x9.pptx', '1613034967066.jpg', '1613034967083.jpg', '1613035079325.jpg', '1613035270313.jpg', '1616159417742.jpg', '1616159417758.jpg', ........, Windows11InstallationAssistant.exe', 'WindowsPCHealthCheckSetup.msi', 'Word frequency Python.edited.docx', 'wrong.jpg', 'X-ray image.png', 'XML-data.xml', 'yemen500.png', 'zambia-500.png', 'zimbabwe-500.png', 'ZoomInstaller (1).exe', 'ZoomInstaller.exe', '__pycache__', '~$EOC CERTIFICATE.pptx']

如我們所見,指定目錄中所有文件的名稱都列印在程序的輸出中。

說明:

在程序中導入 os 模塊後,我們首先定義了目錄的路徑,通過初始化一個路徑變數,我們要從該目錄列印所有文件名的列表。之後,我們在 listdir()方法中使用初始化的路徑變數,在函數中使用路徑作為參數。最後,我們在 print 語句中使用了另一個初始化變數(listOfFileNames)來列印輸出中的結果。

結論

在本教程中,我們學習了 os 模塊的 listdir()方法,並理解了該函數的重要性。我們學習這個函數的語法,然後學習使用這個函數的方法。最後,我們使用帶有 listdir()函數的 Python 程序來理解每個方法的實現。


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

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

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

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

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29

發表回復

登錄後才能評論