不幸的是,这段代码的运行速度比“os.walk”慢,但为什么呢?
难道是“for”循环导致运行缓慢?
“像‘os.walk’一样工作的代码:( ‘os.walk’函数做了它所做的事情)
注: 我写这篇文章是为了提高自己!:
import os, time
from os.path import *
x = ""
y = []
z = []
var = 0
def walk(xew):
global top, var, x,y,z
if not var: var = [xew]
for i in var:
try:
for ii in os.listdir(i):
y.append(ii) if isdir(i+os.sep+ii) else z.append(ii)
x = top = i
var = [top+os.sep+i for i in os.listdir(top) if isdir(top+os.sep+i)]
except:
continue
yield x,y,z
yield from walk(var)
var.clear();y.clear();z.clear()
Run Code Online (Sandbox Code Playgroud)
例如:
2秒后结束:
for x,y,z in …Run Code Online (Sandbox Code Playgroud)