Python os.listdir方法:獲取指定目錄下的所有文件和文件夾

在Python編程中,經常需要使用到獲取指定目錄下所有文件及文件夾的列表。os.listdir()方法是Python中用於獲取指定目錄下的所有文件和文件夾名的函數,返回值是一個字元串列表。通過os.listdir()方法,可以方便地獲取到指定目錄下的所有文件和文件夾。在本文中,我們將介紹os.listdir()方法的用法,並給出一些使用方法及示例。

一、os.listdir()方法的基本用法

os.listdir()方法的基本語法如下所示:

os.listdir(path)

其中,path是一個字元串,用於指定需要獲取的目錄的路徑。

例如,我們可以使用如下代碼獲取當前目錄下的所有文件及文件夾:

import os
path = "."
file_list = os.listdir(path)
print(file_list)

這段代碼的運行結果可能是:

['example.py', 'test', 'text.txt']

通過上述代碼,我們可以非常方便地獲取到當前目錄下的所有文件及文件夾。

二、os.listdir()方法的使用技巧

1、使用os.path.join()函數拼接路徑

在實際的應用場景中,我們經常需要獲取指定文件夾下的所有文件及文件夾的路徑。可以通過os.path.join()函數將文件夾路徑和文件/文件夾名稱進行拼接,從而得到文件/文件夾的完整路徑。

例如,我們要獲取當前目錄下名為test的文件夾中所有文件及文件夾的完整路徑,可以使用如下代碼:

import os
folder_name = "test"
path = os.path.join(os.getcwd(), folder_name)
file_list = os.listdir(path)
print(file_list)

上述代碼中,os.getcwd()方法用於獲取當前工作路徑,即當前Python腳本所在的目錄。然後,使用os.path.join()函數將當前目錄和要獲取的文件夾名拼接成完整路徑,保存在path變數中。最後,使用os.listdir()方法獲取指定目錄下的所有文件及文件夾。

2、使用for循環遍歷文件夾中的所有文件

通過上面的代碼,我們可以獲取到文件夾中所有文件及文件夾的名稱列表。但是,在實際的應用場景中,我們經常需要對文件夾中的每一個文件進行操作,例如讀取文件內容、重命名文件等。可以使用for循環遍歷文件夾中的所有文件及文件夾。

例如,我們可以使用如下代碼讀取當前目錄下名為text.txt的文件中的內容:

import os
file_name = "text.txt"
path = os.path.join(os.getcwd(), file_name)
with open(path, 'r') as f:
    content = f.read()
print(content)

上述代碼首先使用os.getcwd()方法獲取當前工作路徑,然後使用os.path.join()函數將文件名和路徑拼接成完整路徑,保存在path變數中。最後,使用with語句打開文件,並讀取文件內容。需要注意的是,使用with語句打開文件時,可以省略close()方法。

3、使用遞歸遍歷文件夾中的所有文件

如果文件夾中還包含其他文件夾,則可以使用遞歸的方式遍歷文件夾中的所有文件。遞歸遍歷的實現方式可以使用os.walk()函數。

例如,我們可以使用如下代碼遍歷當前目錄下的所有文件和文件夾,並輸出它們的完整路徑:

import os
for root, dirs, files in os.walk("."):
    for name in files:
        print(os.path.join(root, name))
    for name in dirs:
        print(os.path.join(root, name))

上述代碼中,os.walk()方法返回根目錄、子目錄和文件的三元組。其中root是當前目錄路徑,dirs是當前目錄下所有子目錄的名稱,files是當前目錄下所有文件的名稱。通過for循環遍歷這三個列表,可以遍歷當前目錄及其子目錄下的所有文件及文件夾。

三、總結

os.listdir()方法是Python中常用的用來獲取指定目錄下所有文件及文件夾名的函數。通過os.listdir()方法,可以方便地獲取到指定目錄下的所有文件和文件夾。同時,本文介紹了使用os.path.join()函數拼接路徑、使用for循環遍歷文件夾中的所有文件、使用遞歸遍歷文件夾中的所有文件等技巧。

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

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

相關推薦

發表回復

登錄後才能評論