程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

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

发布于2020-02-25 19:53     阅读(688)     评论(0)     点赞(30)     收藏(2)


我在运行Linux 2.6.32的嵌入式设备上使用python。

使用python来获取文件大小为,os.path.getsize()将返回负值。

在堆栈溢出中提到了类似的问题之一,并尝试使用重新编译python,CFLAGS='-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64' OPT="-g -O2 $CFLAGS" 但仍然返回负文件大小。

我在linux 2.6.32上将python 2.6.4与Django 1.2.4一起使用。

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


解决方案


显然,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


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/233618/28697a11453ce647913b/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

30 0
收藏该文
已收藏

评论内容:(最多支持255个字符)