私は、Pythonで特定のHFS +ドライブ上のファイル数を(素早く)検索する方法を見つけようとしています。Pythonでドライブ上のファイル数を調べる方法は?
私はos.statvfsなどで遊んでいますが、何も得られません。
アイデア?
編集:もう少し具体的にしましょう。 =]
私はさまざまな理由でrsyncの周りにタイムマシーンのようなラッパーを書いていますが、rsyncがスキャンしようとしているドライブ上のファイル数の見積もりが非常に速い(完璧である必要はありません)。こうすることで、最初のファイルリストが作成されてrsync(rsync -ax --progress
、または-P
オプションのように呼び出された場合)から進捗状況を見ることができ、割合やETAをユーザーに報告することができます。
これは実際のバックアップとは完全に分離されており、進捗状況の追跡は問題ありません。しかし、私が数百万のファイルで作業しているドライブでは、ファイル数のカウンタが数分間上限に達していないことをユーザーが見ていることを意味します。
これまでの回答の1つに記載されているメソッドとまったく同じos.statvfsを試してみましたが、結果は意味をなさないものです。
>>> import os
>>> os.statvfs('/').f_files - os.statvfs('/').f_ffree
64171205L
よりポータブルな方法は、rsyncを実行し、その準備を含め、私はこのマシン上で見てきた他のすべての指標と同じで、このマシン上で私の周りに110万を与える:
>>> sum(len(filenames) for path, dirnames, filenames in os.walk("/"))
1084224
。なお、最初の方法は瞬間的なものですが、2番目の方法は15分後に更新されるようになりました。
この番号を取得するのと同様の方法を知っている人はいますか、os.statvfsの番号をどのように扱い/解釈しているのですか?
os.statvfs [os.B_FILES]の出力は、期待どおりにどのように変化しますか? (os.statvfsのサンプル出力を貼り付けることができ、それが役に立たない理由を説明すれば、それはOS Xを知らない人を助けるでしょう)。 –
@Charles:実際の詳細で質問を更新しました... –
以前のrsync実行の番号を使用できます。それは速く、移植性があり、10 ** 6ファイルおよび任意の合理的なバックアップ戦略のために、それはあなたに1%またはそれ以上の精度を与えるでしょう。 – jfs