python3 用遞迴方法列出所有目錄與檔案

2022-09-09 03:00:17 字數 1105 閱讀 2587

python3 用遞迴方法列出所有目錄與檔案

# !/usr/bin/env python

# -*- coding:utf-8 -*-

# author:hiuhung wan

import os

from time import time

dir_count = 0

file_count = 0

def get_all_dir(path, sp = "|"):

# 得到當前目錄下所有的檔案

fills_list = os.listdir(path)

sp += "-"

# 處理每乙個檔案

for file_name in fills_list:

# 判斷是否是路徑(用絕對路徑)

file_abs_path = os.path.join(path, file_name)

if os.path.isdir(file_abs_path):

global dir_count # 寫了這個global,不知道會不會被開除

dir_count += 1

print(sp, "目錄:",file_name)

get_all_dir(file_abs_path, sp)

else:

global file_count

file_count += 1

print(sp, "普通檔案:",file_name)

def main():

# user_dir = r"d:\py\1704"

user_dir = r"c:\python36"

t1 = time()

get_all_dir(user_dir)

t2 = time()

print("一共有%d個目錄,%d個檔案,耗時%.3f秒" % (dir_count, file_count, t2 - t1))

if __name__ == "__main__":

main()

效果圖如下:

Python3 遞迴函式

1.必須有乙個明確的結束條件 2.每次進入更深一層遞迴時,問題規模相比上次遞迴都應有所減少 3.遞迴效率不高,遞迴層次過多會導致棧溢位 在計算機中,函式呼叫是通過棧 stack 這種資料結構實現的,每當進入乙個函式呼叫,棧就會加一層棧幀,每當函式返回,棧就會減一層棧幀。由於棧的大小不是無限的,所以,...

Python3 遞迴函式

在函式內部,可以呼叫其他函式。如果乙個函式在內部呼叫自身本身,這個函式就是遞迴函式。def calc n print n if int n 2 0 return n return calc int n 2 calc 10 輸出 105 21遞迴特性 1.必須有乙個明確的結束條件,最多遞迴999次 2...

Python3 遞迴函式

1 def fat n 2 result 13 for i in range 2,n 1 4 result result i5 return result6 print fat 5 7 8 9 def digui x 10 if x 1 11 return 112 return x digui x ...