Возможно, это связано с NTFS alternate data streams. Хотя в статье говорится, что наличие ADS в файле не влияет на его размер, все может измениться с момента написания статьи (еще в 2004 году), а диалоговое окно свойств Windows 10 вполне может учитывать все ADS в файле, тогда как python не делает.
more recent blog post объясняет, как исследовать потоки данных в файл с помощью PowerShell утилиты:
Get-item -Path C:\Windows\System32\AdvancedInstallers\cmiv2.dll -stream *
Если моя гипотеза верна, то вывод должен выглядеть примерно следующим:
FileName: C:\Windows\System32\AdvancedInstallers\cmiv2.dll
Stream Length
------ ------
:$DATA 2193248
SomethingElse 1059328
(или SomethingElse может фактически состоять из нескольких небольших потоков с размерами, суммирующими до 1059328).
Можете ли вы напечатать вывод 'с открытым (путь) как f: print (len (f.read()))?? –
Кроме того, файл активно загружается, когда вы запускаете эти тесты случайно? –
Какой выход из 'печати (os.stat (путь) .st_size)' –