日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python os.walk模块_Python之os.walk和os.path.walk

發布時間:2023/12/4 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python os.walk模块_Python之os.walk和os.path.walk 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、os.walk()

函數聲明:os.walk(top,topdown=True,οnerrοr=None)

(1)參數top表示需要遍歷的頂級目錄的路徑。

(2)參數topdown的默認值是“True”表示首先返回頂級目錄下的文件,然后再遍歷子目錄中的文件。當topdown的值為"False"時,表示先遍歷子目錄中的文件,然后再返回頂級目錄下的文件。

(3)參數onerror默認值為"None",表示忽略文件遍歷時的錯誤。如果不為空,則提供一個自定義函數提示錯誤信息后繼續遍歷或拋出異常中止遍歷。

返回值:函數返回一個元組,含有三個元素。這三個元素分別是:每次遍歷的路徑名、路徑下子目錄列表、目錄下文件列表。

os.walk使用實例:刪除某個文件夾(當然可以通過os.listdir的遞歸調用刪除)

#! /usr/bin/env python

#coding=utf-8

import os

def Remove_dir(top_dir):

if os.path.exists(top_dir)==False:

print "not exists"

return

if os.path.isdir(top_dir)==False:

print "not a dir"

return

for dir_path,subpaths,files in os.walk(top_dir,False):

for file in files:

file_path=os.path.join(dir_path,file)

print "delete file:%s" %file_path

os.remove(file_path)

print "delete dir:%s" %dir_path

os.rmdir(dir_path)

#調用

Remove_dir(r"C:\Users\Administrator\Desktop\zrbuN7zRuc")

二、os.path.walk

函數聲明:os.path.walk(top,func,arg)

(1)參數top表示需要遍歷的目錄路徑

(2)參數func表示回調函數,即對遍歷路徑進行處理的函數。所謂回調函數,是作為某個函數的參數使用,當某個時間觸發時,程序將調用定義好的回調函數處理某個任務。注意:walk的回調函數必須提供三個參數:第1個參數為os.path.walk的參數arg,第2個參數表示目錄dirname,第3個參數表示文件列表names。注意:os.path.walk的回調函數中的文件列表不和os.walk()那樣將子目錄和文件分開,而是混為了一攤,需要在回調函數中判斷是文件還是子目錄。

(3)參數arg是傳遞給回調函數的元組,為回調函數提供處理參數,arg可以為空。回調函數的第1個參數就是用來接收這個傳入的元組的。

過程:以top 為根的目錄樹中的每一個目錄 (包含 top 自身,如果它是一個目錄),以參數 (arg, dirname, names)調用回調函數 funct。參數 dirname 指定訪問的目錄,參數 names 列出在目錄中的文件(從 os.listdir(dirname)中得到)。回調函數可以修改 names 改變 dirname 下面訪問的目錄的設置,例如,避免訪問樹的某一部分。(由 names 關連的對象必須在合適的位置被修改,使用 del 或 slice 指派。)?注意:符號連接到目錄不被作為一個子目錄處理,并且因此 walk()將不訪問它們。訪問連接的目錄你必須以os.path.islink(file) 和 os.path.isdir(file)標識它們,并且必須調用walk() 。

os.path.walk使用實例:遍歷文件夾下所有文件(os.path.walk()不能用于刪除文件夾(可能是我沒想到),因為os.path.walk()先遍歷頂級目錄,再遍歷子目錄中的文件)。

#! /usr/bin/env python

#coding=utf-8

import os

#回調函數

def find_file(arg,dirname,files):

for file in files:

file_path=os.path.join(dirname,file)

if os.path.isfile(file_path):

print "find file:%s" %file_path

#調用

os.path.walk(r"C:\Users\Administrator\Desktop\4",find_file,())

區別:os.path.walk()與os.walk()產生的文件名列表并不相同.os.walk()產生目錄樹下的目錄路徑和文件路徑,而os.path.walk()只產生文件路徑(是子目錄與文件的混合列表)。

總結

以上是生活随笔為你收集整理的python os.walk模块_Python之os.walk和os.path.walk的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。