真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python遍歷函數(shù)封裝,python類封裝與調(diào)用

Python中如何遍歷指定目錄下的所有文件?

例如:在C:\TDDOWNLOAD目錄下有a.txt、b.txt兩個(gè)文件,另有\(zhòng)sub1子文件夾,C:\TDDOWNLOAD\sub1下又有c.txt、d.txt兩個(gè)文件。 1. os.walk os.walk()返回一個(gè)三元素的tuple:當(dāng)前路徑、子文件夾名稱、文件列表。 import os def fun( path ):... for root, dirs, files in os.walk( path ):... for fn in files:... print root, fn... fun( r'C:\TDDOWNLOAD' )C:\TDDOWNLOAD a.txtC:\TDDOWNLOAD b.txtC:\TDDOWNLOAD\sub1 c.txtC:\TDDOWNLOAD\sub1 d.txt 2. glob.glob glob.glob()只接受一個(gè)參數(shù),這個(gè)參數(shù)既代有路徑,又代有匹配模式,返回值為一個(gè)列表。注意,glob.glob()無(wú)法直接穿透子文件夾,需要自己處理: def fun( path ):... for fn in glob.glob( path + os.sep + '*' ): # '*'代表匹配所有文件... if os.path.isdir( fn ): # 如果結(jié)果為文件夾... fun( fn ) # 遞歸... else:... print fn... fun( r'C:\TDDOWNLOAD' )C:\TDDOWNLOAD\a.txtC:\TDDOWNLOAD\b.txtC:\TDDOWNLOAD\sub1\c.txtC:\TDDOWNLOAD\sub1\d.txt '*'為匹配模式,代表匹配所有文件,只有這樣才能將子文件夾查出來(lái),以便遞歸深入,探查下一層的文件。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、虛擬空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、硯山網(wǎng)站維護(hù)、網(wǎng)站推廣。

Python for-in Loop常見(jiàn)遍歷方法

Python的for...in 循環(huán)有三種常見(jiàn)用法:

第一,按長(zhǎng)度遍歷 :

若不需要索引號(hào)index,可以直接用"for obj in obj-list"語(yǔ)句遍歷

第二,若既需要索引,又需要成員值,可以用enumerate()函數(shù)

enumerate() 函數(shù)用于將一個(gè)可遍歷的數(shù)據(jù)對(duì)象(如列表、元組或字符串),同時(shí)輸出數(shù)據(jù)和數(shù)據(jù)下標(biāo),常用于for-in循環(huán)。

第三,不關(guān)心索引,只希望同時(shí)遍歷多個(gè)列表,可以用zip函數(shù)。

zip函數(shù)將多個(gè)列表作為輸入,在每次迭代的時(shí)候,將每個(gè)列表的當(dāng)前成員組合成一個(gè)元組輸出。

如何利用Python遍歷文件夾

1. 基本實(shí)現(xiàn)

[root@localhost ~]# cat dirfile.py

import os

path='/tmp'for dirpath,dirnames,filenames in os.walk(path): ? ?for file in filenames:

fullpath=os.path.join(dirpath,file) ? ? ? ? ? ?print fullpath

執(zhí)行結(jié)果如下:

[root@localhost ~]# python dirfile.py

/tmp/yum.log/tmp/pulse-3QSA3BbwpQ49/pid/tmp/pulse-3QSA3BbwpQ49/native/tmp/.esd-0/socket

2. 在上例的基礎(chǔ)上傳遞參數(shù)

import os,sys

path=sys.argv[1]for dirpath,dirnames,filenames in os.walk(path): ? ?for file in filenames:

fullpath=os.path.join(dirpath,file) ? ? ? ? ? ?print fullpath

執(zhí)行方式為:[root@localhost ~]# python dirfile.py /tmp

在這里,sys.argv[1]是接受參數(shù),也可以定義sys.argv[2]接受第二個(gè)參數(shù)

3. 如何用函數(shù)實(shí)現(xiàn)

import os,sys

path='/tmp'def paths(path):

path_collection=[] ? ? ? ?for dirpath,dirnames,filenames in os.walk(path): ? ? ? ? ? ? ? ?for file in filenames:

fullpath=os.path.join(dirpath,file)

path_collection.append(fullpath) ? ? ? ?return path_collectionfor file in paths(path): ? ? ? ?print file

4. 如何封裝成類

import os,sysclass diskwalk(object): ? ? ? ?def __init__(self,path):

self.path = path ? ? ? ?def paths(self):

path=self.path

path_collection=[] ? ? ? ? ? ? ? ?for dirpath,dirnames,filenames in os.walk(path): ? ? ? ? ? ? ? ? ? ? ? ?for file in filenames:

fullpath=os.path.join(dirpath,file)

path_collection.append(fullpath) ? ? ? ? ? ? ? ?return path_collectionif __name__ == '__main__': ? ? ? ?for file in diskwalk(sys.argv[1]).paths(): ? ? ? ? ? ? ? ?print file

PS:

1 def __init__():函數(shù),也叫初始化函數(shù)。

self.path = path可以理解為初始化定義了1個(gè)變量。 在后面的def里面調(diào)用的時(shí)候必須要使用self.path而不能使用path

2?__name__ == '__main__'

模塊是對(duì)象,并且所有的模塊都有一個(gè)內(nèi)置屬性 __name__。一個(gè)模塊的 __name__ 的值取決于您如何應(yīng)用模塊。如果 import 一個(gè)模塊,那么模塊__name__ 的值通常為模塊文件名,不帶路徑或者文件擴(kuò)展名。但是您也可以像一個(gè)標(biāo)準(zhǔn)的程序樣直接運(yùn)行模塊,在這種情況下, __name__ 的值將是一個(gè)特別缺省"__main__"。上述類中加上__name__ == '__main__'的判斷語(yǔ)句,可以直接在終端環(huán)境下執(zhí)行python dirfile.py /tmp進(jìn)行測(cè)試,不必非得在交互式環(huán)境下導(dǎo)入模塊進(jìn)行測(cè)試。


網(wǎng)頁(yè)標(biāo)題:python遍歷函數(shù)封裝,python類封裝與調(diào)用
瀏覽路徑:http://weahome.cn/article/hdcgpo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部