Очевидно, что ваше ядро Linux имеет поддержку больших файлов, поскольку ls -l
работает правильно. Таким образом, вашей установке Python не хватает поддержки. (Вы используете пакет Python своего дистрибутива? Какой это дистрибутив?)
В документации по поддержке больших файлов POSIX в Python говорится, что Python обычно должен использовать поддержку больших файлов, если она доступна в Linux. Также предлагается попробовать настроить Python с помощью командной строки
CFLAGS='-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64' OPT="-g -O2 $CFLAGS" \
./configure
И, наконец, цитирование справочной страницы системного вызова stat
:
Это может произойти, когда приложение, скомпилированное на 32-разрядной платформе без -D_FILE_OFFSET_BITS=64
, вызывает stat()
для файла, размер которого превышает (1<<31)-1
бит.
(я считаю, что последнее слово должно быть "байтами".)