0

os.walk の使用中に非常に一貫性のない結果が得られました。私の目的は、python を使用して、システム上の別の python ファイルをプログラムで見つけることです。これは、os.walk が行う作業があまりなく、1 つまたは 2 つのフォルダーのみを検索する場合にうまく機能します。

import os
from os.path import join

lookfor = "new_id17.py"
for root, dirs, files in os.walk('L:\\HWYS\\D_GROUP6\\STAFF\\myname\\Python'):
    for name in files:
        print(os.path.join(root, name))
        if lookfor in files:
            print "found: %s" % join(root, lookfor)
            break

上記のコードを使用すると、os.walk は短時間で簡単にファイルを見つけることができます。ただし、フォルダーディレクトリの上位にある同じファイルを検索するように依頼すると、ファイルが見つからないようです。

import os
from os.path import join

lookfor = "new_id17.py"
for root, dirs, files in os.walk("L:\\HWYS"):
    for name in files:
        print(os.path.join(root, name))
        if lookfor in files:
            print "found: %s" % join(root, lookfor)
            break

私がどこで間違っているのか誰にも分かりますか?os.walk に関する既知の問題はありますか? それとも、多数のフォルダーやファイルを検索するのが苦手なだけですか。

4

0 に答える 0