0

Python で再帰的なファイル リスト プログラムを作成しようとしています。最後にコードをキャッチする例外なしでプログラムを実行すると、一部の Windows フォルダーへのアクセスが拒否されたことを示すエラー番号 5 が返されます。私は管理者権限とすべてを持っていますが、それでもこのエラーがスローされ続けます。これを回避して、それらのディレクトリ内のファイルをリストすることはまったく可能ですか?

import os

def wrapperList():
    mainList = []
    fileList = os.listdir("C:")
    for file in fileList:
        path = os.path.join("C:\\", file)
        if (os.path.isdir(path)):
            mainList.append(recurList(path))
        else:
            mainList.append(path)
    print mainList
def recurList(directory):
    try:
        fileList = os.listdir(directory)
        tempList = []
        for file in fileList:
            path = os.path.join(directory, file)
            if (os.path.isdir(file)):
                tempList.append(recurList(path))
            else:
                tempList.append(file)
        return tempList
    except:
        return ["Access Denied"]

wrapperList()
4

1 に答える 1

3

os.walkこれは、同じことを自分で実装しようとするよりも、使用した方がはるかに優れている例です。

例えば:

import os

for root, dirs, files in os.walk("/some/path"):
    ...

エラーに関しては、許可が拒否されている場合は、実際にアクセスが拒否されている可能性があります。私は Windows ユーザーではないので、よくわかりませんが、管理者権限でプログラムを実行する必要がありますか? sudo(root として、またはLinuxで実行するのと同じです)。

于 2012-05-05T21:56:46.977 に答える