前言
如何遍歷查找出某個文件夾內所有的子文件呢?並且找出某個后綴的所有文件
walk功能簡介
1.os.walk() 方法用於通過在目錄樹種游走輸出在目錄中的文件名,向上或者向下。
2.walk()方法語法格式如下:
os.walk(top,topdown=True,onerror=None, followlinks=False)
-
top 根目錄下的每一個文件夾(包含它自己), 產生3-元組 (dirpath, dirnames, filenames)【文件夾路徑, 文件夾名字, 文件名】。
-
topdown 可選,為True或者沒有指定, 一個目錄的的3-元組將比它的任何子文件夾的3-元組先產生 (目錄自上而下)。如果topdown為 False, 一個目錄的3-元組將比它的任何子文件夾的3-元組后產生 (目錄自下而上)。
-
onerror 可選,是一個函數; 它調用時有一個參數, 一個OSError實例。報告這錯誤后,繼續walk,或者拋出exception終止walk。
-
followlinks 設置為 true,則通過軟鏈接訪問目錄。
以上參考文檔http://www.runoob.com/python/os-walk.html
遍歷文件
1.第一個參數fpath是遍歷打印所有的文件路徑
# coding:utf-8
import os
path = r"D:\test\python2" # 查找文件的路徑
for fpath, dirname, fnames in os.walk(path):
print(fpath) # 所有的文件夾路徑 微信公眾號:yoyoketang
2.第二個參數dirname是遍歷打印所有的文件夾名稱
# coding:utf-8
import os
path = r"D:\test\python2" # 查找文件的路徑
for fpath, dirname, fnames in os.walk(path):
print(dirname) # 所有的文件名 微信公眾號:yoyoketang
3.第三個參數fnames是遍歷打印所有的文件名
# coding:utf-8
import os
path = r"D:\test\python2" # 查找文件的路徑
for fpath, dirname, fnames in os.walk(path):
print(fnames) # 所有的文件名 微信公眾號:yoyoketang
遍歷所有的文件
1.遍歷查找文件夾內所有的子文件(不包含文件夾)
2.用endswith判斷查找后置是.py結尾的
# coding:utf-8
import os
def get_files(path='D:\\xx', rule=".py"):
all = []
for fpathe,dirs,fs in os.walk(path): # os.walk是獲取所有的目錄
for f in fs:
filename = os.path.join(fpathe,f)
if filename.endswith(rule): # 判斷是否是"xxx"結尾
all.append(filename)
return all
if __name__ == "__main__":
b = get_files(r"D:\test\python2")
for i in b:
print i
python自動化學習交流QQ群:226296743