首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Python 使用 fnmatch 與 os.walk 遞迴搜尋 C 磁碟 DLL 檔案

     編輯:更多程式設計知識

需求:掃描 Windows C 磁碟所有資料夾,找出副檔名為 .dll 的檔案並記錄完整路徑。Python 標準庫 os.walk 配合 fnmatch 可輕鬆實現,無需複雜介面實作。

核心程式碼


import os
import fnmatch

def main():
    with open('dll_list.txt', 'w', encoding='utf-8') as f:
        for root, dirs, files in os.walk('C:\\'):
            for name in files:
                if fnmatch.fnmatch(name.lower(), '*.dll'):
                    full_path = os.path.join(root, name)
                    f.write(full_path + '\n')
    print('done...')

if __name__ == '__main__':
    main()

關鍵點解析

  • os.walk('C:\\'):遞迴遍歷目錄樹,回傳 (root, dirs, files) 三元組。
  • fnmatch.fnmatch(name, pattern):支援萬用字元 *, ? 的模式比對,大小寫不敏感建議自行 .lower()。
  • 使用 with open(...) as f 確保檔案正確關閉。
  • 寫入路徑時用 os.path.join 跨平台相容。

效能與權限提醒

  1. 掃描整顆 C 磁碟需管理員權限,否則部分系統資料夾會拋出 PermissionError。
  2. 檔案數量龐大時,建議改用生成器或分批寫入,避免記憶體壓力。
  3. 可加入 try-except 捕捉存取錯誤並記錄日誌。

延伸應用

同樣模式可用於:

  • 尋找特定大小、修改時間的檔案。
  • 批次重命名、移動、刪除符合條件的檔案。
  • 建立檔案索引資料庫。

此技巧是 Python 自動化維運腳本的基礎技能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved