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

Python遍歷某目錄下的所有文件夾與文件路徑

 更新時間:2018年03月15日 11:16:31   作者:yongh701  
這篇文章主要介紹了Python遍歷某目錄下的所有文件夾與文件路徑 以及輸出中文亂碼問題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文與《【Java】讀取其下所有文件夾與文件的路徑》 點擊打開鏈接)為姊妹篇,主要講述Python對于文件信息的讀取操作。

Python對于文件信息的讀取操作,在其固有類os中。

下面以讀取F盤下的所有文件夾作為例子說明這個問題:

Python對于文件夾的遍歷有兩種寫法,一種是直接利用其封裝好的walk方法直接操作。
這是Python做得比Java優(yōu)勢的地方:

# -*-coding:utf-8-*- 
import os 
for root,dirs,files in os.walk("f:\\"): 
 for dir in dirs: 
  print os.path.join(root,dir).decode('gbk').encode('utf-8'); 
 for file in files: 
  print os.path.join(root,file).decode('gbk').encode('utf-8'); 


運行效果如下:

上述程序,將os.walk讀取到的所有路徑root、目錄名dirs與文件名files,也就是三個文件數(shù)組利用foreach循環(huán)輸出。

join方法就是講其路徑與目錄名或者文件名連接起來,組成一個完整的目錄。

后面的.decode('gbk').encode('utf-8');方法主要是給Eclipse下的PyDev控制臺用的,如果不加控制臺的輸出會出現(xiàn)亂碼,但是,如果你的Python程序是要拉到Windows的控制臺cmd,使用python xx.py運行的話,請不要加這段編碼方法,同時去掉開頭的# -*-coding:utf-8-*-。因為cmd是使用gb2312簡體中文編碼的,而不是像Linux的終端是utf-8編碼。

也可以根據(jù)Java的遞歸思想,寫成以下的形式:

# -*-coding:utf-8-*- 
 
import os; 
files = list(); 
def DirAll(pathName): 
 if os.path.exists(pathName): 
  fileList = os.listdir(pathName); 
  for f in fileList: 
   if f=="$RECYCLE.BIN" or f=="System Volume Information": 
    continue; 
   f=os.path.join(pathName,f); 
   if os.path.isdir(f):  
    DirAll(f);     
   else: 
    dirName=os.path.dirname(f); 
    baseName=os.path.basename(f); 
    if dirName.endswith(os.sep): 
     files.append(dirName+baseName); 
    else: 
     files.append(dirName+os.sep+baseName); 
 
 
DirAll("f:\\"); 
for f in files: 
 print f.decode('gbk').encode('utf-8'); 


運行效果如下:

當(dāng)然,這種形式有其弊端,就是不能遍歷一些系統(tǒng)保留文件夾,如$RECYCLE.BIN、System Volume Information等,如果不寫判斷條件,會導(dǎo)致下面的讀取出錯。因此,以后遍歷文件夾的時候,還是建議時候上面的os.walk的方式。

不過,我們可以從上面的程序看到幾個常見的用法,os.sep能夠直接返回文件分隔符/或者\\、、os.path.join(文件所在目錄的路徑、文件名)能把文件所在目錄的路徑與文件名連接起來,os.path.isdir(完整路徑)能判斷是否是目錄,endswith("xx")方法能判斷字符串是否以xx結(jié)束的。os.path.dirname()能得到文件所在目錄的路徑,os.path.basename()能得到文件名,os.listdir(路徑)能得到相應(yīng)的文件列表,等等。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python定時發(fā)送天氣預(yù)報郵件代碼實例

    Python定時發(fā)送天氣預(yù)報郵件代碼實例

    這篇文章主要介紹了Python定時發(fā)送天氣預(yù)報郵件代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • 在windows下快速搭建web.py開發(fā)框架方法

    在windows下快速搭建web.py開發(fā)框架方法

    這篇文章主要介紹了在windows下快速搭建web.py開發(fā)框架方法,需要的朋友可以參考下
    2016-04-04
  • Python自制一個PDF轉(zhuǎn)PNG圖片小工具

    Python自制一個PDF轉(zhuǎn)PNG圖片小工具

    這篇文章主要為大家詳細(xì)介紹了如何利用Python中的PyQt5自制一個PDF轉(zhuǎn)PNG格式圖片的小工具,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2023-02-02
  • 使用python裝飾器驗證配置文件示例

    使用python裝飾器驗證配置文件示例

    項目中用到了一個WriteData的函數(shù)保存用戶填寫的配置,為了實現(xiàn)驗證用戶輸入的需求,在不影響接口的使用的前提下,采用了python的裝飾器實現(xiàn),代碼片段演示了如何驗證WriteData函數(shù)的輸入?yún)?shù)
    2014-02-02
  • Django中的CBV和FBV示例介紹

    Django中的CBV和FBV示例介紹

    這篇文章主要給大家介紹了關(guān)于Django中CBV和FBV的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-02-02
  • 在Django的URLconf中使用多個視圖前綴的方法

    在Django的URLconf中使用多個視圖前綴的方法

    這篇文章主要介紹了在Django的URLconf中使用多個視圖前綴的方法,Django是Python中最為著名的遵循MVC結(jié)構(gòu)的開發(fā)框架,需要的朋友可以參考下
    2015-07-07
  • python實現(xiàn)的config文件讀寫功能示例

    python實現(xiàn)的config文件讀寫功能示例

    這篇文章主要介紹了python實現(xiàn)的config文件讀寫功能,結(jié)合實例形式分析了Python文件讀寫相關(guān)操作技巧,需要的朋友可以參考下
    2019-09-09
  • Python入門教程(三十)Python的PIP

    Python入門教程(三十)Python的PIP

    這篇文章主要介紹了Python入門教程(三十)Python的PIP,PIP是Python 包或模塊的包管理器,本章帶你們看一下如何使用PIP命令,需要的朋友可以參考下
    2023-04-04
  • pytorch  網(wǎng)絡(luò)參數(shù) weight bias 初始化詳解

    pytorch 網(wǎng)絡(luò)參數(shù) weight bias 初始化詳解

    這篇文章主要介紹了pytorch 網(wǎng)絡(luò)參數(shù) weight bias 初始化詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python中l(wèi)ower函數(shù)實現(xiàn)方法及用法講解

    python中l(wèi)ower函數(shù)實現(xiàn)方法及用法講解

    在本篇文章里小編給大家整理的是一篇關(guān)于python中l(wèi)ower函數(shù)實現(xiàn)方法及用法講解內(nèi)容,有需要的朋友們可以學(xué)習(xí)參考下。
    2020-12-12

最新評論

称多县| 安泽县| 上犹县| 广元市| 东海县| 石河子市| 广南县| 舞阳县| 渭南市| 文水县| 东莞市| 蒲江县| 龙门县| 巴彦淖尔市| 湘阴县| 松潘县| 漾濞| 蒙自县| 开封市| 伊宁县| 盐源县| 平度市| 宁阳县| 海门市| 江山市| 巴南区| 永吉县| 义乌市| 扶沟县| 花莲县| 葵青区| 辽中县| 循化| 遂平县| 延吉市| 苏州市| 遵化市| 黎平县| 治县。| 岫岩| 南召县|