pathlib を使用して、ファイルを再帰的にグロブおよび/または検索しようとしています。私の制御不能なファイルシステムの管理が不十分なため、ファイルのアクセス許可とグループがいたるところにあります。
この問題は、rglob が降りようとするディレクトリへのアクセス許可とグループ メンバーシップの両方が不足している場合に発生します。Rglob は KeyError をスローし、次に PermissionError をスローし、最後に完全に停止します。これから正常に回復してグロビングを続ける方法はありません。
私が望む動作は、rglob がアクセス許可を持っていないディレクトリをスキップし、アクセス許可があった/見たすべてのリストを生成することです。この特定のケースでは、実行のたびに何らかのディレクトリまたは別のディレクトリに対して不適切なアクセス許可を持っていることがほぼ保証されているため、すべてか無かという性質は私をそれほど遠くまで連れて行くことはありません。
詳細:
Python: Linux 用のソースからコンパイルされた 3.4.1
グロビングしているファイルシステム: 自動マウントされた nfs 共有
再現方法:
mkdir /tmp/path_test && cd /tmp/path_test && mkdir dir1 dir2 dir2/dir3 && touch dir1/file1 dir1/file2 dir2/file1 dir2/file2 dir2/dir3/file1
su
chmod 700 dir2/dir3/
chown root:root dir2/dir3/
exit
python3.4.1
from pathlib import Path
p = Path('/tmp/path_test')
for x in p.rglob('*') : print(x)