亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python中遍歷文件的3個方法

系統(tǒng) 2014 0

今天寫一個在windows下批量修改文件名的python腳本,用到文件的遍歷。用python進行文件遍歷有多種方法,這里列舉并說明一下。

os.path.walk()

這是一個傳統(tǒng)的用法。

walk(root,callable,args)方法有三個參數(shù):要遍歷的目錄,回調函數(shù),回調函數(shù)的參數(shù)(元組形式)。

調用的過程是遍歷目錄下的文件或目錄,每遍歷一個目錄,調用回調函數(shù),并把args作為參數(shù)傳遞給回調函數(shù)。

回調函數(shù)定義時也有三個參數(shù),比如示例中的func中的三個參數(shù),分別為walk傳來的參數(shù)、目錄的路徑、目錄下的文件列表(只有文件名,不是完整路徑)。請看示例:

復制代碼 代碼如下:

import os
s = os.sep?#根據(jù)unix或win,s為\或/
root = "d:" + s + "ll" + s?#要遍歷的目錄

def func(args,dire,fis):?#回調函數(shù)的定義
??? for f in fis:
??????? fname = os.path.splitext(f)??#分割文件名為名字和擴展名的二元組
??????? new = fname[0] + 'b' + fname[1]??#改名字
??????? os.rename(os.path.join(dire,f),os.path.join(dire,new))?#重命名

os.path.walk(root,func,())?#遍歷

這種方法在使用時有個問題,不能遞歸遍歷下一層(這點我還不確定,歡迎指正)。

python的高級版本中加入了os.walk(),比這個好用。

os.walk()

原型為:os.walk(top, topdown=True, onerror=None, followlinks=False)

我們一般只使用第一個參數(shù)。(topdown指明遍歷的順序)
該方法對于每個目錄返回一個三元組,(dirpath, dirnames, filenames)。第一個是路徑,第二個是路徑下面的目錄,第三個是路徑下面的非目錄(對于windows來說也就是文件)。請看示例:

復制代碼 代碼如下:

import os
s = os.sep
root = "d:" + s + "ll" + s?

for rt, dirs, files in os.walk(root):
??? for f in files:
??????? fname = os.path.splitext(f)
??????? new = fname[0] + 'b' + fname[1]
??????? os.rename(os.path.join(rt,f),os.path.join(rt,new))

這種方式可以遞歸遍歷所有的文件。

listdir

可以使用os模塊下的幾個方法組合起來進行遍歷。請看示例:

復制代碼 代碼如下:

import os
s = os.sep
root = "d:" + s + "ll" + s

for i in os.listdir(root):
??? if os.path.isfile(os.path.join(root,i)):
??????? print i

這里需要注意的是,其中的i是目錄或文件名,不是完整的路徑,在使用時要結合os.path.join()方法還原完整路徑。

遍歷搞定之后,文件名的修改可以使用正則表達式做一些高級的處理。

另外,還可以使用os.system(cmd)來調用shell里面的相關命令對文件進行處理,很好很強大。


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久精品店 | 99久久综合国产精品免费 | 亚洲国产精久久久久久久春色 | 久久精品在这里 | 国产精品成人观看视频网站 | 国产精品免费在线播放 | 激情国产白嫩美女在线观看 | 日韩一级a毛片欧美一级 | 伊人婷 | 四虎影视在线影院4hutv | 日本xxxxx18护士xxx | 亚洲精品色一区二区三区 | 九九九精品视频 | 国内精品福利 | 国模私拍视频在线 | 97视频在线观看免费播放 | 四虎免费网站 | 成人影院高清在线观看免费网站 | 91在线视频免费91 | 久久久综合网 | 中文字幕在线亚洲精品 | 久久婷婷色综合老司机 | 亚洲一区二区三区久久 | 性色生活免费看性大片 | 爱操成人网 | 一级毛片成人免费看免费不卡 | 日韩精品一区二区三区中文字幕 | 日本在线不卡免 | 97av在线| 看看一级毛片 | 真实国产乱子伦精品免费 | 亚洲专区区免费 | 久久6精品 | 日韩在线一区二区 | 久久青草国产精品一区 | 色综合天天综合网国产国产人 | 欧美精品国产第一区二区 | 韩日一级毛片 | 久久综合精品视频 | 毛片基地免费视频a | 色网址在线观看 |