91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中列出目錄中的文件方法有哪些

發布時間:2023-02-28 11:10:59 來源:億速云 閱讀:128 作者:iii 欄目:開發技術

這篇文章主要介紹了Python中列出目錄中的文件方法有哪些的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Python中列出目錄中的文件方法有哪些文章都會有所收獲,下面我們一起來看看吧。

1. 引言

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

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

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

2. 使用os.listdir()

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

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

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

>>> os.listdir(myPath)

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

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

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

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

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

3. 使用os.walk()

os模塊中還有另一個方法 os.walk() 。顧名思義,它可以一層一層地“遍歷”目錄樹。當我們調用os.walk() 函數時,它將返回一個生成器。此時每次調用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() 函數。(無需在Python文件頂部顯式導入glob模塊)

import pathlib

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

6. 使用os.scandir()

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

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

關于“Python中列出目錄中的文件方法有哪些”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Python中列出目錄中的文件方法有哪些”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

青铜峡市| 曲阳县| 宜春市| 翁牛特旗| 涿鹿县| 花莲市| 阿坝县| 诸城市| 霞浦县| 石屏县| 浮梁县| 云阳县| 漠河县| 麻栗坡县| 永城市| 越西县| 凌源市| 南木林县| 拜泉县| 绥芬河市| 卫辉市| 皮山县| 江源县| 襄垣县| 呼伦贝尔市| 阜城县| 沁水县| 蓝田县| 南川市| 萝北县| 金阳县| 翁源县| 曲周县| 墨脱县| 锦州市| 彭州市| 嘉善县| 师宗县| 罗源县| 中卫市| 绥中县|