python - 为什么 os.path.getsize() 对于 10gb 的文件返回负数?

标签 python linux file-io

我正在使用函数 os.path.getsize() 以字节为单位给出文件的大小。

因为我的一个文件大小是 10gb,它给我的大小是负数(字节)。

所以谁能告诉我为什么会这样?

这是我的代码:

import os
ospathsize = os.path.getsize('/home/user/Desktop/test1.nrg')
print (ospathsize) 

最佳答案

您的 Linux 内核显然支持大文件,因为 ls -l工作正常。因此,是您的 Python 安装缺少支持。 (您使用的是您的发行版的 Python 包吗?它是什么发行版?)

关于 POSIX large file support in Python 的文档指出 Python 通常应该使用大文件支持,如果它在 Linux 上可用的话。它还建议尝试使用命令行配置 Python

CFLAGS='-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64' OPT="-g -O2 $CFLAGS" \
    ./configure

最后,引用 man page of the stat system call :

This can occur when an application compiled on a 32-bit platform without -D_FILE_OFFSET_BITS=64 calls stat() on a file whose size exceeds (1<<31)-1 bits.

(我相信最后一个词应该是“bytes”。)

关于python - 为什么 os.path.getsize() 对于 10gb 的文件返回负数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5167120/

相关文章:

java - 在文本文件的开头添加行 - Java

python - 如何从预先训练的词嵌入数据集创建 Keras 嵌入层?

python - 在 scikit-learn 中向文本向量化器添加新词

linux - 从引导介质以外的其他介质安装 Linux (lubuntu)

c - 为分发共享库进行简单的 autoconf 设置时遇到问题

linux - 定义了全局描述符和局部描述符表的数据结构的文件?

java - JTable不显示Object[][]数据

python - 将 'file' 变量传递给函数时出现 TypeError

python - 如何在使用 django-hosts 时在 django 中重定向?

java - 如何用JAVA向文件中写入特定数据