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

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

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

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

Python對(duì)于文件信息的讀取操作,在其固有類(lèi)os中。

下面以讀取F盤(pán)下的所有文件夾作為例子說(shuō)明這個(gè)問(wèn)題:

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

# -*-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'); 


運(yùn)行效果如下:

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

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

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

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

# -*-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'); 


運(yùn)行效果如下:

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

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

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

相關(guān)文章

  • python通過(guò)pil模塊獲得圖片exif信息的方法

    python通過(guò)pil模塊獲得圖片exif信息的方法

    這篇文章主要介紹了python通過(guò)pil模塊獲得圖片exif信息的方法,實(shí)例分析了Python中pil模塊的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03
  • Python封裝shell命令實(shí)例分析

    Python封裝shell命令實(shí)例分析

    這篇文章主要介紹了Python封裝shell命令,實(shí)例分析了Python將各種常用shell命令封裝進(jìn)一個(gè)類(lèi)中以便調(diào)用的方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-05-05
  • django免除csrf校驗(yàn)的方法

    django免除csrf校驗(yàn)的方法

    這篇文章主要介紹了django免除csrf校驗(yàn)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 使用python的pexpect模塊,實(shí)現(xiàn)遠(yuǎn)程免密登錄的示例

    使用python的pexpect模塊,實(shí)現(xiàn)遠(yuǎn)程免密登錄的示例

    今天小編就為大家分享一篇使用python的pexpect模塊,實(shí)現(xiàn)遠(yuǎn)程免密登錄的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • 分位數(shù)回歸模型quantile regeression應(yīng)用詳解及示例教程

    分位數(shù)回歸模型quantile regeression應(yīng)用詳解及示例教程

    這篇文章主要為大家介紹了介紹了分位數(shù)回歸quantile regeression的概念詳解及代碼示例教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • 基于KL散度、JS散度以及交叉熵的對(duì)比

    基于KL散度、JS散度以及交叉熵的對(duì)比

    這篇文章主要介紹了基于KL散度、JS散度以及交叉熵的對(duì)比,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Pytorch矩陣乘法(torch.mul() 、 torch.mm() 和torch.matmul()的區(qū)別)

    Pytorch矩陣乘法(torch.mul() 、 torch.mm() 和torch.m

    在深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)的世界里,矩陣乘法是一項(xiàng)至關(guān)重要的操作,本文主要介紹了Pytorch矩陣乘法,包含了torch.mul() 、 torch.mm() 和torch.matmul()的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • django模型中的字段和model名顯示為中文小技巧分享

    django模型中的字段和model名顯示為中文小技巧分享

    這里給大家分享2個(gè)可以讓django模型中的字段和model名顯示為中文的小技巧,非常的簡(jiǎn)單實(shí)用,給需要的小伙伴參考下。
    2014-11-11
  • Python對(duì)數(shù)據(jù)進(jìn)行插值和下采樣的方法

    Python對(duì)數(shù)據(jù)進(jìn)行插值和下采樣的方法

    今天小編就為大家分享一篇Python對(duì)數(shù)據(jù)進(jìn)行插值和下采樣的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • python進(jìn)程間通信Queue工作過(guò)程詳解

    python進(jìn)程間通信Queue工作過(guò)程詳解

    這篇文章主要介紹了python進(jìn)程間通信Queue工作過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11

最新評(píng)論