我正在使用函数 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
callsstat()
on a file whose size exceeds(1<<31)-1
bits.
(我相信最后一个词应该是“bytes”。)
关于python - 为什么 os.path.getsize() 对于 10gb 的文件返回负数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5167120/