最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python遍歷目錄中的所有文件的方法

 更新時間:2016年07月08日 16:42:23   作者:linda1000  
Pyhton中我們一般使用os.walk生成器來獲取文件夾中的所有文件,這里我們就來詳細看一下Python遍歷目錄中的所有文件的方法,包括一個進階的利用fnmatch模塊進行匹配的方法:

os.walk生成器
os.walk(PATH), PATH是個文件夾路徑,當然可以用.或者../這樣啦.
返回的是個三元元組為元素的列表, 每個元素代表了一個文件夾下的內(nèi)容.第一個就是當前文件夾下內(nèi)容.
返回的三元元組代表(該工作文件夾, 該文件夾下的文件夾的列表, 該文件夾下文件的列表).
所以,
獲得所有子文件夾, 就是(d代表這三元元組):

os.path.join(d[0],d[1]);

獲得所有子文件, 就是:

 os.path.join(d[0],d[2]);

以下例子使用了兩套循環(huán), 遍歷后得到所有文件名的list后再循環(huán)所有文件:

result = [os.path.join(dp, f) for dp, dn, fs in os.walk("_pages") for f in fs if os.path.splitext(f)[1] == '.html']
for fname in result:
 #do something

實際等于

result=[]
for dp, dn, fs in os.walk("_pages"):
 for f in fs:
 if (os.path.splitext(f)[1] == '.html'):
  result.append(os.path.join(dp, f))
for fname in result:
 #do something

最后判斷是否html后綴獲得文件名, 還可以使用glob:

result = [y for x in os.walk(PATH) for y in glob.glob(os.path.join(x[0], '*.txt'))]

還可以使用迭代器方法:

from itertools import chain
import glob
result = (chain.from_iterable(glob.iglob(os.path.join(x[0], '*.txt')) for x in os.walk('.')))

進階
標準文件數(shù)遍歷生成器os.walk既強大又靈活,不過os.walk還缺乏應(yīng)用程序需要的一些細節(jié)上的處理能力,例如根據(jù)某種模式選擇文件,對所有文件(或目錄)進行排序,或只遍歷當前目錄不進入其子目錄,因此需要對接口對應(yīng)進行封裝。

import os, fnmatch 
 
def filter_files(dirname, patterns='*', single_level=False, yield_folders=False): 
  patterns = patterns.split(';') 
  allfiles = [] 
  for rootdir, subdirname, files in os.walk(dirname): 
    print subdirname 
    allfiles.extend(files) 
    if yield_folders: 
      allfiles.extend(dubdirname) 
    if single_level: 
      break 
  allfiles.sort() 
  for eachpattern in patterns: 
    for eachfile in fnmatch.filter(allfiles, eachpattern): 
        print os.path.normpath(eachfile) 

說明:
1.extend與append的區(qū)別
列表是以類的形式實現(xiàn)的?!皠?chuàng)建”列表實際上是將一個類實例化。因此,列表有多種方法可以操作。  列表可包含任何數(shù)據(jù)類型的元素,單個列表中的元素無須全為同一類型。 append() 方法向列表的尾部添加一個新的元素。只接受一個參數(shù),extend()方法只接受一個列表作為參數(shù),并將該參數(shù)的每個元素都添加到原有的列表中。
2. fnmatch模塊
fnmatch 模塊使用模式來匹配文件名。模式語法和 Unix shell 中所使用的相同. 星號(*) 匹配零個或更多個字符, 問號(?) 匹配單個字符。你也可以使用方括號來指定字符范圍,例如 [0-9] 代表一個數(shù)字,其他所有字符都匹配它們本身。
1) fnmatch.fnmatch(name, pattern)方法:測試name是否匹配pattern,返回true/false
2) fnmatch.filter(names, pat)實現(xiàn)列表特殊字符的過濾或篩選,返回符合匹配模式的字符列表,當然names表示的是列表

相關(guān)文章

  • python中argparse模塊及action='store_true'詳解

    python中argparse模塊及action='store_true'詳解

    argparse?是一個用來解析命令行參數(shù)的?Python?庫,它是?Python?標準庫的一部分,這篇文章主要介紹了python中argparse模塊及action=‘store_true‘詳解,需要的朋友可以參考下
    2023-02-02
  • python使用tkinter實現(xiàn)透明窗體

    python使用tkinter實現(xiàn)透明窗體

    一直在思索實現(xiàn)一個透明的窗體,然后可以基于這個窗體可以開發(fā)出各種好玩的應(yīng)用(如桌面運動的小人、運動的小球、截圖、錄制GIF等等),今天無意間居然讓我把其中一個最核心的技術(shù)難關(guān)突破了,我非常高興,也借這個機會跟大家分享一下。
    2021-05-05
  • pymysql實現(xiàn)增刪改查的操作指南(python)

    pymysql實現(xiàn)增刪改查的操作指南(python)

    python中可以使用pymysql來MySQL數(shù)據(jù)庫的連接,并實現(xiàn)數(shù)據(jù)庫的各種操作,這篇文章主要給大家介紹了關(guān)于pymsql實現(xiàn)增刪改查的相關(guān)資料,需要的朋友可以參考下
    2021-05-05
  • Python通過解析網(wǎng)頁實現(xiàn)看報程序的方法

    Python通過解析網(wǎng)頁實現(xiàn)看報程序的方法

    這篇文章主要介紹了Python通過解析網(wǎng)頁實現(xiàn)看報程序的方法,比較實用的功能,需要的朋友可以參考下
    2014-08-08
  • python xml.etree.ElementTree遍歷xml所有節(jié)點實例詳解

    python xml.etree.ElementTree遍歷xml所有節(jié)點實例詳解

    這篇文章主要介紹了python xml.etree.ElementTree遍歷xml所有節(jié)點實例詳解的相關(guān)資料,這里附有實例代碼,需要的朋友可以參考下
    2016-12-12
  • Python中XML轉(zhuǎn)JSON、XML轉(zhuǎn)字典代碼示例

    Python中XML轉(zhuǎn)JSON、XML轉(zhuǎn)字典代碼示例

    大家都知道python的字典和json類似,那么可不可以先將xml轉(zhuǎn)換成json再去做其他的事情呢,下面這篇文章主要給大家介紹了關(guān)于Python中XML轉(zhuǎn)JSON、XML轉(zhuǎn)字典的相關(guān)資料,需要的朋友可以參考下
    2024-02-02
  • Django session登陸并獲取值的實例

    Django session登陸并獲取值的實例

    這篇文章主要介紹了Django session登陸并獲取值的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python調(diào)試神器之PySnooper的使用教程分享

    Python調(diào)試神器之PySnooper的使用教程分享

    對于每個程序開發(fā)者來說,調(diào)試幾乎是必備技能。本文小編就來給大家介紹一款非常好用的調(diào)試工具,它能在一些場景下,大幅度提高調(diào)試的效率, 那就是 PySnooper,希望大家喜歡
    2023-02-02
  • Python列表中多元素刪除(移除)的實現(xiàn)

    Python列表中多元素刪除(移除)的實現(xiàn)

    本文主要介紹了Python列表中多元素刪除(移除)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • python3用PyPDF2解析pdf文件,用正則匹配數(shù)據(jù)方式

    python3用PyPDF2解析pdf文件,用正則匹配數(shù)據(jù)方式

    這篇文章主要介紹了python3用PyPDF2解析pdf文件,用正則匹配數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05

最新評論

咸宁市| 绥化市| 长乐市| 石狮市| 河源市| 寿阳县| 中西区| 三河市| 凌海市| 措勤县| 大新县| 东至县| 南部县| 扎赉特旗| 怀集县| 于田县| 屯留县| 郑州市| 永修县| 手游| 墨江| 上思县| 云霄县| 志丹县| 潼南县| 容城县| 高州市| 丹棱县| 吉林市| 柘城县| 宿松县| 靖西县| 哈尔滨市| 和林格尔县| 玉环县| 泗洪县| 武穴市| 应用必备| 柘城县| 海南省| 唐山市|