Pliki mają szerszą definicję, zwłaszcza w Uniksie, niż myślisz. Jaka jest długość drukarki, na przykład? Lub napęd CD-ROM? Oba są plikami w/dev i sortowane w systemie Windows.
Za to, co zwykle uważamy za plik, jaka byłaby jego długość? Wielkość zmiennej? Rozmiar pliku w bajtach? Ta druga ma więcej sensu, ale potem staje się bardziej lodowata. Należy podać rozmiar zawartości pliku lub jego rozmiar na dysku (rozmiar jednostki alokacji modułów). Problem pojawia się ponownie w przypadku plików rzadkich (plików, które mają duże puste sekcje, które nie zajmują miejsca, ale są częścią zwykle raportowanego rozmiaru pliku, obsługiwanego przez niektóre systemy plików, takie jak NTFS i XFS).
Oczywiście, odpowiedź na wszystkie z nich może być: "wybierz jeden i udokumentuj to, co wybrałeś". Być może właśnie to powinno być zrobione, ale żeby być Pythonicznym, coś zwykle musi być jednoznaczne, bez konieczności czytania wielu dokumentów. len(string)
jest w większości oczywiste (można zapytać, czy bajty lub znaki są wartością zwracaną), len(array)
jest oczywiste, len(file)
może nie dość.
(1) W interaktywny interpreter Pythona wykonać 'import this'. (2) ponieważ aby zaimplementować, musisz przeczytać plik do końca. Więc lepiej spytaj system operacyjny, aby zrobił to za ciebie (np. Jak w [to pytanie SO] (http://stackoverflow.com/questions/6591931/getting-file-size-in-python)) – J0HN
ponieważ ktoś przyszedł z os.stat i statinfo.st_size – varun