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

python文件及路徑管理函數

系統 1615 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
              
              
                '
              
              )            
              
                #
              
              
                 判斷某一路徑是否為文件
              
            

創建目錄   os . mkdir ( path )

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

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

刪除目錄   os.rmdir(path)

刪除一級目錄

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

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

創建多級目錄,其參數path 為要創建目錄的路徑。

              os.makedirs(r
              
                "
              
              
                C:\Users\Never\Desktop\aa\bb
              
              
                "
              
              )  
              
                #
              
              
                 在桌面創建一個aa目錄,并在aa目錄中創建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 
              
              =
              
                 []

    
              
              
                #
              
              
                 遍歷完畢,退出循環
              
            

綜合使用

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

              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元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美一级片在线播放 | 日本高清免费不卡毛片 | 亚洲经典在线中文字幕 | 美女羞羞网站妖精视频 | 国产片侵犯亲女视频播放 | 国产精品视频久久 | 在线视频成人 | 欧美电影大全 | 欧美两性人xxxx高清免费 | 亚洲综合无码一区二区 | 美女污污视频在线观看 | 日韩精品一区在线 | 亚洲欧美第一视频 | 国产精品视频观看 | 欧洲午夜视频 | 日韩久久精品电影 | 天天噜夜夜操 | 狠狠操社区 | 欧美 日韩 中文字幕 | 天干夜天天夜天干天国产电影 | 亚洲精品小视频 | 欧美成人手机在线视频 | 欧洲亚洲精品久久久久 | 欧美一级二级视频 | 欧美zozozo人禽交免费观看 | 亚洲高清在线看 | av免费不卡国产观看 | 国产精品乱码在线观看 | 国产探花在线精品一区二区 | 亚洲宗合| av片免费 | 欧美理论影院在线观看免费 | 精品久久久久久无码中文字幕 | 国产精品久久久久无码av | 亚洲网站一区 | 国产亚洲精品日韩香蕉网 | 精品福利在线视频 | 午夜日韩 | 国产福利自产拍在线观看 | 不卡一区| 漂流教室在线观看 |