os.path.getsize()对于大文件返回负文件大小(对于大于3GB的文件大小)

2024-09-29 22:18:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我在运行linux2.6.32的嵌入式设备上使用python。在

使用python获取文件大小为os.path.getsize()会返回一个负值。在

我引用了这里关于堆栈溢出的similar questions之一,并尝试用CFLAGS='-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64' OPT="-g -O2 $CFLAGS"重新编译python 但它仍然返回负的文件大小。在

我在Linux2.6.32上使用Python2.6.4和Django1.2.4。在

谁能告诉我问题在哪里吗?在


Tags: pathsource堆栈osbitsfileoffsetquestions
1条回答
网友
1楼 · 发布于 2024-09-29 22:18:36

显然,Linux发行版的Python构建有问题。与其解决实际问题,不如解决它:

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

相关问题 更多 >

    热门问题