システム上のディレクトリをクロールし、ファイルのメタデータを記録するスクリプトを作成しました。これを行うためにos.walkを使用しました。
ほとんどの部分で機能しましたが、異なるマシンで実行すると、異なるファイルのリストが返されます。
現在、Dropboxフォルダーでテストしています。私のMBPro(lion)では、フォルダーをクロールし、正しい数のファイルを返します。私のiMac(マウンテンライオン)では、通常は実行ごとに1〜3個のファイルをスキップしません。追加のクロールはストラグラーをピックアップしますが、通常はディレクトリ内のいくつかのファイルを無視し続けます。
コードの短いスニペットは次のとおりです。
directory = '/Users/user/Dropbox/'
for dirname, dirnames, filenames in os.walk(directory):
for subdirname in dirnames:
for filename in filenames:
if os.path.isfile(filename):
# collect file info using os.path and os.stat
私は明らかにディレクトリを無視したいです。これを行うためのより良い方法はありますか?できれば、OSにとらわれないものが望ましい。