欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python文件及路徑管理函數

系統 1742 0

glob模塊

說明:

1、glob是python自己帶的一個文件操作相關模塊,用它可以查找符合自己目的的文件,就類似于Windows下的文件搜索,

支持通配符操作? * ? [] ?這三個通配符, * 代表0個或多個字符, ? 代表一個字符, [] 匹配指定范圍內的字符,如[0-9]匹配數字。

glob.glob("字符串+通配符")

該方法返回指定路徑所有匹配的文件的列表,該方法需要一個參數用來指定匹配的路徑字符串(本字符串可以為絕對路徑也可以為相對路徑),其返回的文件名只包括當前目錄里的文件名,不包括子文件夾里的文件。

glob.glob(r'c:\*.txt')       我這里就是獲得C盤下的所有txt文件

glob.glob(r'E:\pic\*\*.jpg')   獲得指定目錄下的所有jpg文件

glob.glob(r'../*.py')       上一層路徑下的所有.py文件

fnmatch模塊

此模塊的主要作用是文件名稱的匹配,fnmatch有2個比較常用的方法: fnmatch filter

字符 含義
* 匹配所有字符
匹配單個字符
[seq] 匹配指定范圍內的字符
[seq] 匹配不在指定范圍內的字符

fnmatch.fnmatch(filename, patten)  測試filename,是否符合pattern

              
                import
              
              
                 fnmatch

              
              
                import
              
              
                 os

              
              
                for
              
               file 
              
                in
              
               os.listdir(
              
                '
              
              
                .
              
              
                '
              
              ): 
              
                #
              
              
                os.listdir返回指定的文件夾包含的文件或文件夾的名字的列表
              
              
                if
              
               fnmatch.fnmatch(file, 
              
                '
              
              
                *.py
              
              
                '
              
              ): 
              
                #
              
              
                判斷是否有后綴為.py的文件,*代表文件名長度格式不限制。
              
              
                print
              
              (file)
            

fnmatch.filter(names, pattern)    實現列表特殊字符的過濾或篩選,返回符合匹配模式的字符列表,

              
                import
              
              
                 fnmatch
filelist
              
              =[
              
                "
              
              
                a.text
              
              
                "
              
              ,
              
                "
              
              
                b.jpg
              
              
                "
              
              ,
              
                "
              
              
                c.png
              
              
                "
              
              ,
              
                "
              
              
                d.py
              
              
                "
              
              ,
              
                '
              
              
                e.text
              
              
                '
              
              ,
              
                "
              
              
                sss.py
              
              
                "
              
              
                ]

              
              
                print
              
              (fnmatch.filter(filelist,
              
                "
              
              
                ?.py
              
              
                "
              
              )) 
              
                #
              
              
                 匹配前面是一個字符的.py文件
              
              
                
#
              
              
                 輸出:d.py
              
            

os的文件操作

os.path()

os.path?常用方法:

              
                import
              
              
                 os


              
              
                print
              
              (os.path.splitext(
              
                '
              
              
                ./data/large.wav
              
              
                '
              
              ))            
              
                #
              
              
                 分離文件名和擴展名 ('./data/large', '.wav')
              
              
                print
              
              (os.path.splitext(
              
                '
              
              
                ./data/large
              
              
                '
              
              ))                
              
                #
              
              
                 分離文件名和擴展名 ('./data/large', '')
              
              
                print
              
              (os.path.split(
              
                '
              
              
                /root/runoob.txt
              
              
                '
              
              ))               
              
                #
              
              
                 分割文件名與路徑 ('/root', 'runoob.txt')
              
              
                print
              
              (os.path.join(
              
                '
              
              
                root
              
              
                '
              
              ,
              
                '
              
              
                test
              
              
                '
              
              ,
              
                '
              
              
                runoob.txt
              
              
                '
              
              ))        
              
                #
              
              
                 將目錄和文件名合成一個路徑 root/test/runoob.txt
              
              
os.path.isdir(
              
                '
              
              
                d:/books/book
              
              
                '
              
              )                      
              
                #
              
              
                 判斷某一路徑是否為目錄
              
              
os.path.isfile(
              
                '
              
              
                d:/books/book/book.txt
              
              
                '
              
              )            
              
                #
              
              
                 判斷某一路徑是否為文件
              
            

創(chuàng)建目錄   os . mkdir ( path )

其參數path為要創(chuàng)建的目錄,但只能創(chuàng)建一級目錄,不能創(chuàng)建多級目錄。

              os.mkdir(r
              
                "
              
              
                C:\Users\Never\Desktop\aa
              
              
                "
              
              )  
              
                #
              
              
                 在桌面創(chuàng)建一個aa目錄
              
            

刪除目錄   os.rmdir(path)

刪除一級目錄

              os.rmdir(
              
                '
              
              
                d:\hmm
              
              
                '
              
              )     
              
                #
              
              
                 把D盤下的hmm的目錄刪除
              
            

創(chuàng)建多級目錄  os.makedirs(path)

創(chuàng)建多級目錄,其參數path 為要創(chuàng)建目錄的路徑。

              os.makedirs(r
              
                "
              
              
                C:\Users\Never\Desktop\aa\bb
              
              
                "
              
              )  
              
                #
              
              
                 在桌面創(chuàng)建一個aa目錄,并在aa目錄中創(chuàng)建bb目錄
              
            

刪除多級目錄  os.removedirs(path)

刪除多級目錄,注意:要刪除的目錄必須是空目錄,即目錄沒有文件

              os.removedirs(
              
                '
              
              
                d:\\books\\book
              
              
                '
              
              )    
              
                #
              
              
                 注意:要刪除的目錄必須是空目錄
              
            

刪除文件  os.remov(path)

              os.remove(
              
                '
              
              
                d:\\books\\book\\book.txt
              
              
                '
              
              )    
              
                #
              
              
                 刪除D盤下books目錄下book目錄中的book.txt的文件
              
            

遍歷目錄  os.walk(path)

其參數path 為要遍歷的目錄,返回一個三元素的元組? (root,dirs,files)

  • root 所指的是當前正在遍歷的這個文件夾的本身的地址
  • dirs 是一個 list ,內容是該文件夾中所有的目錄的名字(不包括子目錄)
  • files 同樣是 list , 內容是該文件夾中所有的文件(不包括子目錄)

如果我們有如下的文件結構:

                 a ->   b   ->   1.txt,  2
              
                .txt
          c   
              
              ->   3
              
                .txt
          d   
              
              ->   
        4
              
                .txt
        
              
              5.txt
            
              
                for
              
               (root, dirs, files) 
              
                in
              
               os.walk(
              
                '
              
              
                a
              
              
                '
              
              
                ):
    
              
              
                #
              
              
                第一次運行時,當前遍歷目錄為 a
              
              
    所以 root == 
              
                '
              
              
                a
              
              
                '
              
              
                
         dirs 
              
              == [ 
              
                '
              
              
                b
              
              
                '
              
              , 
              
                '
              
              
                c
              
              
                '
              
              , 
              
                '
              
              
                d
              
              
                '
              
              
                ]
         files 
              
              == [ 
              
                '
              
              
                4.txt
              
              
                '
              
              , 
              
                '
              
              
                5.txt
              
              
                '
              
              
                ]

    
              
              
                #
              
              
                 接著遍歷 dirs 中的每一個目錄
              
              
    b:  root  = 
              
                '
              
              
                a\\b
              
              
                '
              
              
                
        dirs  
              
              =
              
                 []
        files 
              
              = [ 
              
                '
              
              
                1.txt
              
              
                '
              
              , 
              
                '
              
              
                2.txt
              
              
                '
              
              
                ]
    
    
              
              
                #
              
              
                 dirs為空,返回
              
              
                #
              
              
                 遍歷c
              
              
    c:  root  = 
              
                '
              
              
                a\\c
              
              
                '
              
              
                
        dirs  
              
              =
              
                 []
        files 
              
              = [ 
              
                '
              
              
                3.txt
              
              
                '
              
              
                 ]
    
    PS : 如果想獲取文件的全路徑,只需要 
    
              
              
                for
              
               f 
              
                in
              
              
                 files:
        path 
              
              =
              
                 os.path.join(root,f)
    
    
              
              
                #
              
              
                 遍歷d
              
              
    d:  root  = 
              
                '
              
              
                a\\b
              
              
                '
              
              
                
        dirs  
              
              =
              
                 []
        files 
              
              =
              
                 []

    
              
              
                #
              
              
                 遍歷完畢,退出循環(huán)
              
            

綜合使用

列出一個文件夾中的所有音頻文件,把文件名存儲到列表中,這段代碼經常會用到

              wav_list =
              
                 []

              
              
                for
              
               root, dirnames, filenames 
              
                in
              
               os.walk(
              
                "
              
              
                ./VCTK/p225
              
              
                "
              
              
                ):
    
              
              
                for
              
               filename 
              
                in
              
               fnmatch.filter(filenames, 
              
                "
              
              
                *.wav
              
              
                "
              
              ):     
              
                #
              
              
                 實現列表特殊字符的過濾或篩選,返回符合匹配“.wav”字符列表
              
              
                        wav_list.append(os.path.join(root, filename))

              
              
                print
              
              
                (wav_list)

              
              
                #
              
              
                 ['./VCTK/p225\\p225_001.wav', '/VCTK/p225\\p225_002.wav',...
              
            

?


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲国产清纯 | 欧美调教视频 | 精品一区二区三区在线观看l | 欧美精品综合一区二区三区 | 亚洲成av | 国产精品久久久久久久久电影网 | 91中文视频 | 一区二区视频在线 | 六月婷婷六月天 | 日本天天色| 亚洲v日本v欧美v综合v | 成熟自由日本语热亚洲人 | 欧美欲妇激情视频在线 | 久久综合九色 | 久久美女性网 | 观看av | 亚洲综合精品一区 | 五月婷婷之综合激情 | 综合九九 | 亚洲阿v天堂2021在线观看 | 日韩精品一级毛片 | 久草免费福利资源站 | 一区二区三区毛片 | 亚洲精品无码不卡在线播放he | 国产一区二区视频在线播放 | 国产老女人精品毛片久久 | 欧美网站在线看 | 亚洲高清视频一区二区 | 日韩精品一区二区三区在线播放 | 日韩欧美一区二区三区 | 欧美日韩视频在线 | 亚洲一区二区三区中文字幕 | 亚洲精品黄色 | 欧美精品福利 | 久草视 | 国产精品单位女同事在线 | 99je全部都是精品视频在线 | 久久综合久色欧美综合狠狠 | 日韩 亚洲 欧美 中文 高清 | 国产一区 | 色偷偷噜噜噜亚洲男人 |