Os.walk утечка памяти?

Когда я запускаю этот скрипт Python в Windows, процесс развивается без видимого конца:

import os

for i in xrange(1000000):
    for root, dirs, files in os.walk(r"c:\windows"):
        pass

Я что-то неправильно понимаю? (Я использую Python 2.7.3.)

4 голоса | спросил user1687699 21 stEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 21 Sep 2012 07:28:42 +0400 2012, 07:28:42

1 ответ


0

Это связано с утечкой памяти, обнаруженной в os.path.isdir; см. Большая утечка памяти при повторных вызовах os.path.isdir? Вы можете проверить это самостоятельно, используя строку пути в кодировке Unicode - утечки не должно быть.

os.path.isdir используется в реализации os.walk:

    islink, join, isdir = path.islink, path.join, path.isdir
    try:
        names = listdir(top)
    except error, err:
        if onerror is not None:
            onerror(err)
        return

    dirs, nondirs = [], []
    for name in names:
        if isdir(join(top, name)):
            dirs.append(name)
        else:
            nondirs.append(name)
ответил AAlon 1 +04002012-10-01T03:43:07+04:00312012bEurope/MoscowMon, 01 Oct 2012 03:43:07 +0400 2012, 03:43:07

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132