小编Jun*_*lah的帖子

自写的 os.walk-alike 比 os.walk 本身慢得多 - 为什么?

不幸的是,这段代码的运行速度比“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)

python performance python-3.x python-3.6

3
推荐指数
1
解决办法
408
查看次数

标签 统计

performance ×1

python ×1

python-3.6 ×1

python-3.x ×1