欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python利用遞歸和walk()遍歷目錄文件的方法示例

 更新時間:2017年07月14日 10:48:09   作者:蘇打水解渴  
在日常開發(fā)中經(jīng)常需要檢查一個“目錄或文件夾”內(nèi)部有沒有我們想要的文件或者文件夾,下面這篇文章主要給大家介紹了關(guān)于Python利用遞歸和walk()遍歷目錄文件的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。

前言

經(jīng)常需要檢查一個“目錄或文件夾”內(nèi)部有沒有我們想要的文件或者文件夾,就需要我們循環(huán)迭代出所有文件和子文件夾,Python中遍歷指定目錄下所有的文件和文件夾,包含多級目錄,有兩種方法,一種是通過遞歸思想去遍歷,另一種是os模塊的walk()函數(shù)下面話不多說,就來一起看看詳細的介紹:

列出目錄結(jié)構(gòu)

一.遞歸方法

 #coding:utf-8
 import os
 allfile=[]
 def getallfile(path):
  allfilelist=os.listdir(path)
  for file in allfilelist:
   filepath=os.path.join(path,file)
   #判斷是不是文件夾
   if os.path.isdir(filepath):
    getallfile(filepath)
   allfile.append(filepath)
  return allfile

 if __name__ == '__main__':

  path="C:\Users\zs\PycharmProjects\demo"
  allfiles=getallfile(path)

  for item in allfiles:
   print item


#結(jié)果
C:\Users\zs\PycharmProjects\demo\.idea\demo.iml
C:\Users\zs\PycharmProjects\demo\.idea\encodings.xml
C:\Users\zs\PycharmProjects\demo\.idea\misc.xml
C:\Users\zs\PycharmProjects\demo\.idea\modules.xml
C:\Users\zs\PycharmProjects\demo\.idea\workspace.xml
C:\Users\zs\PycharmProjects\demo\.idea
C:\Users\zs\PycharmProjects\demo\functiondemo.py
C:\Users\zs\PycharmProjects\demo\index.py
C:\Users\zs\PycharmProjects\demo\locale\en_US\LC_MESSAGES\django.po
C:\Users\zs\PycharmProjects\demo\locale\en_US\LC_MESSAGES
C:\Users\zs\PycharmProjects\demo\locale\en_US
C:\Users\zs\PycharmProjects\demo\locale\zh_CN\LC_MESSAGES\lang.mo
C:\Users\zs\PycharmProjects\demo\locale\zh_CN\LC_MESSAGES\lang.po
C:\Users\zs\PycharmProjects\demo\locale\zh_CN\LC_MESSAGES
C:\Users\zs\PycharmProjects\demo\locale\zh_CN
C:\Users\zs\PycharmProjects\demo\locale
C:\Users\zs\PycharmProjects\demo\name.txt
C:\Users\zs\PycharmProjects\demo\text.txt

借用遞歸的思想去列出所有文件夾中的內(nèi)容,判斷如果是目錄就繼續(xù)調(diào)用本身的方法。

二.os模塊的walk()函數(shù)

os.walk(top, topdown=True, onerror=None, followlinks=False)

返回一個3個元素的元祖,(dirpath, dirnames, filenames),

  • dirpath:要列出指定目錄的路徑
  • dirnames:目錄下的所有文件夾
  • filenames:目錄下的所有文件

參數(shù)一:top – 根目錄下的每一個文件夾(包含它自己), 產(chǎn)生3-元組 (dirpath, dirnames, filenames)【文件夾路徑, 文件夾名字, 文件名】。

參數(shù)二:topdown –可選,為True或者沒有指定, 一個目錄的的3-元組將比它的任何子文件夾的3-元組先產(chǎn)生 (目錄自上而下)。如果topdown為 False, 一個目錄的3-元組將比它的任何子文件夾的3-元組后產(chǎn)生 (目錄自下而上)。

參數(shù)三:onerror – 可選,是一個函數(shù); 它調(diào)用時有一個參數(shù), 一個OSError實例。報告這錯誤后,繼續(xù)walk,或者拋出exception終止walk。

參數(shù)四:followlinks – 設置為 true,則通過軟鏈接訪問目錄。

#coding:utf-8
import os

def getallfiles(path):
 allfile=[]
 for dirpath,dirnames,filenames in os.walk(path):
  for dir in dirnames:
   allfile.append(os.path.join(dirpath,dir))
  for name in filenames:
   allfile.append(os.path.join(dirpath, name))
 return allfile
if __name__ == '__main__':
 path = "C:\Users\zs\PycharmProjects\demo"
 allfile=getallfiles(path)
 for file in allfile:
  print file




#輸出結(jié)果

C:\Users\zs\PycharmProjects\demo\.idea
C:\Users\zs\PycharmProjects\demo\locale
C:\Users\zs\PycharmProjects\demo\functiondemo.py
C:\Users\zs\PycharmProjects\demo\index.py
C:\Users\zs\PycharmProjects\demo\name.txt
C:\Users\zs\PycharmProjects\demo\text.txt
C:\Users\zs\PycharmProjects\demo\.idea\demo.iml
C:\Users\zs\PycharmProjects\demo\.idea\encodings.xml
C:\Users\zs\PycharmProjects\demo\.idea\misc.xml
C:\Users\zs\PycharmProjects\demo\.idea\modules.xml
C:\Users\zs\PycharmProjects\demo\.idea\workspace.xml
C:\Users\zs\PycharmProjects\demo\locale\en_US
C:\Users\zs\PycharmProjects\demo\locale\zh_CN
C:\Users\zs\PycharmProjects\demo\locale\en_US\LC_MESSAGES
C:\Users\zs\PycharmProjects\demo\locale\en_US\LC_MESSAGES\django.po
C:\Users\zs\PycharmProjects\demo\locale\zh_CN\LC_MESSAGES
C:\Users\zs\PycharmProjects\demo\locale\zh_CN\LC_MESSAGES\lang.mo
C:\Users\zs\PycharmProjects\demo\locale\zh_CN\LC_MESSAGES\lang.po

小結(jié)

兩種方法輸入結(jié)果是一樣的。但是在輸入的順序有差異。對比感覺python的os模塊的walk()方法比較簡單

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Python數(shù)學建模StatsModels統(tǒng)計回歸之線性回歸示例詳解

    Python數(shù)學建模StatsModels統(tǒng)計回歸之線性回歸示例詳解

    這篇文章主要為大家介紹了Python數(shù)學建模中StatsModels統(tǒng)計回歸之線性回歸的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • python3中rsa加密算法詳情

    python3中rsa加密算法詳情

    這篇文章主要介紹了python3中rsa加密算法詳情,rsa加密,是一種加密算法,目前而言,加密算法,是對數(shù)據(jù)、密碼等進行加密,下文更多相關(guān)介紹,需要的小伙伴可以參考一下
    2022-05-05
  • 基于PyQt5制作數(shù)據(jù)處理小工具

    基于PyQt5制作數(shù)據(jù)處理小工具

    這篇文章主要和大家介紹了如何利用Python中的PyQt5模塊制作一個數(shù)據(jù)處理小工具,可以實現(xiàn)根據(jù)每個Excel數(shù)據(jù)文件里面的Sheet批量將數(shù)據(jù)文件合并成為一個匯總后的Excel數(shù)據(jù)文件,需要的可以參考一下
    2022-03-03
  • python人工智能算法之差分進化算法的實現(xiàn)

    python人工智能算法之差分進化算法的實現(xiàn)

    DE基于GA,正如進化基于遺傳,和遺傳算法相比,差分進化引入了差分變異模式,相當于開辟了一條嶄新的進化路徑,下面就來看看差分優(yōu)化算法是如何實現(xiàn)的吧
    2023-08-08
  • python中List添加與刪除元素的幾種方法實例

    python中List添加與刪除元素的幾種方法實例

    列表基本上是?Python?中最常用的數(shù)據(jù)結(jié)構(gòu)之一了,并且刪除操作也是經(jīng)常使用的,下面這篇文章主要給大家介紹了關(guān)于python中List添加與刪除元素的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • Python爬蟲之網(wǎng)絡請求

    Python爬蟲之網(wǎng)絡請求

    這篇文章主要介紹了Python爬蟲之網(wǎng)絡請求,文章基于Python展開對網(wǎng)絡請求的相關(guān)介紹,需要的小伙伴可以參考一下
    2022-04-04
  • python3.6.3安裝圖文教程 TensorFlow安裝配置方法

    python3.6.3安裝圖文教程 TensorFlow安裝配置方法

    這篇文章主要為大家詳細介紹了python3.6.3及TensorFlow安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • 解決Python爬蟲錯誤之twisted.web.error.SchemeNotSupported: Unsupported scheme: b''

    解決Python爬蟲錯誤之twisted.web.error.SchemeNotSupported: Unsu

    這篇文章主要介紹了解決Python爬蟲錯誤之twisted.web.error.SchemeNotSupported: Unsupported scheme: b''問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python?flask?框架使用flask-login?模塊的詳細過程

    Python?flask?框架使用flask-login?模塊的詳細過程

    Flask-Login?是一個?Flask?模塊,可以為?Flask?應用程序提供用戶登錄功能,這篇文章主要介紹了Python?flask?框架使用?flask-login?模塊,需要的朋友可以參考下
    2023-01-01
  • Python中subplots_adjust函數(shù)的用法

    Python中subplots_adjust函數(shù)的用法

    這篇文章主要介紹了Python中subplots_adjust函數(shù)的用法及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評論