os.path.getsize () возвращает отрицательный размер файла для больших файлов (для размера> 3 ГБ) - PullRequest
3 голосов
/ 07 апреля 2011

Я использую python на встроенном устройстве под управлением Linux 2.6.32.

Использование python для получения размера файла, так как os.path.getsize() возвращает мне отрицательное значение.

Я ответил на один из подобных вопросов здесь о переполнении стека и попытался перекомпилировать python с CFLAGS='-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64' OPT="-g -O2 $CFLAGS" но все равно возвращает отрицательный размер файла.

Я использую Python 2.6.4 с Django 1.2.4 на Linux 2.6.32.

Может кто-нибудь сказать мне, где проблема?

1 Ответ

2 голосов
/ 07 апреля 2011

Очевидно, что-то не так с вашей сборкой Python для вашего дистрибутива Linux.Вместо того, чтобы исправить реальную проблему, может быть проще обойти ее:

def getsize_workaround( filename ):
    size = os.path.getsize( filename )
    if size < 0:
        import subprocess as s
        size = long( s.Popen("ls -l %s | cut -d ' ' -f5" % filename,
                    shell=True, stdout=s.PIPE).communicate()[0] )
    return size
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...