Próbowałem dowiedzieć się, jak odzyskać (szybko) liczbę plików na danym dysku HFS + z python.Jak ustalić liczbę plików na dysku za pomocą Pythona?
Gram z os.statvfs i takie, ale nie mogę dostać niczego (to wydaje mi się pomocne).
Wszelkie pomysły?
Edytuj: Pozwól mi być nieco bardziej szczegółowe. =]
Piszę podobne do czasu podobne opakowanie wokół rsync z różnych powodów i chciałbym bardzo szybkiego oszacowania (nie musi być idealne) liczby plików na dysku, które rsync zamierza przeskanować. W ten sposób mogę obserwować postępy z rsync (jeśli nazywasz to jako rsync -ax --progress
lub z opcją -P
), gdy buduje ona swoją początkową listę plików i raportuje procent i/lub ETA z powrotem do użytkownika.
To jest całkowicie oddzielne od rzeczywistej kopii zapasowej, która nie stanowi problemu w śledzeniu postępu. Ale z napędami, nad którymi pracuję z kilkoma milionami plików, oznacza to, że użytkownik ogląda licznik liczby plików w górę bez górnej granicy przez kilka minut.
Próbowałem grać z os.statvfs dokładnie z metodą opisaną w jednej z dotychczasowych odpowiedzi, ale wyniki nie mają dla mnie sensu.
>>> import os
>>> os.statvfs('/').f_files - os.statvfs('/').f_ffree
64171205L
Im bardziej przenośny sposób daje mi około 1,1 miliona na tym komputerze, który jest taki sam jak każdy inny wskaźnik widziałem na tym komputerze, łącznie z rsync działa jej preparatów:
>>> sum(len(filenames) for path, dirnames, filenames in os.walk("/"))
1084224
Należy pamiętać, że pierwsza metoda jest natychmiastowa, podczas gdy druga sprawia, że wracam 15 minut później, aby zaktualizować, ponieważ trwało to tak długo.
Czy ktoś wie o podobnym sposobie otrzymywania tego numeru lub o tym, co jest nie tak z tym, jak traktuję/interpretuję numery os.statvfs?
W jaki sposób dane wyjściowe pliku os.statvfs [os.B_FILES] różnią się od oczekiwanego? (Jeśli możesz wkleić przykładowe wyniki z os.statvfs i wyjaśnić, * dlaczego * nie jest to pomocne, to pomogłoby to osobom, które nie znają OS X, aby ci pomóc). –
@Charles: Zaktualizowałem moje pytanie z kilkoma aktualnymi informacjami teraz ... –
Możesz użyć numeru z poprzedniego przebiegu rsync. Jest szybki, przenośny, a dla 10 ** 6 plików i rozsądnej strategii tworzenia kopii zapasowych zapewnia dokładność 1% lub lepszą. – jfs