File size limitations

Thomas Wouters thomas at xs4all.net
Fri Feb 4 06:19:37 EST 2000


On Thu, Feb 03, 2000 at 04:10:07PM -0700, Bjorn Pettersen wrote:
> gmc333 at my-deja.com wrote:

> > I'd like to use Python for some large-scale file processing on Windows
> > NT. There is a possibility that the size of the files I'll be working
> > with will exceed 2^32 bytes.
> >
> > Can Python handle files that large? Random I/O is a specific concern,
> > since an implementation based on fseek/lseek system calls will fail
> > (these calls use 32-bit math, and bad things can happen with seeks that
> > go too far).

> I'm pretty sure Python uses the fseek/lseek etc. functions for file IO.  It
> would be trivial to create an extension module with Swig
<snip>

Actually, The Code does this:

#if defined(HAVE_FSEEKO)
        ret = fseeko(f->f_fp, offset, whence);
#elif defined(HAVE_FSEEK64)
        ret = fseek64(f->f_fp, offset, whence);
#else
        ret = fseek(f->f_fp, offset, whence);
#endif

(see fileobject.c) which at least suggests python can handle 64bit
filesystems if they exist. Another hint was a posting a few weeks back by
someone who hit a bug because tell() returns a long object instead of an int
object, for very large files (on filesystems that support it.) Wether it
works on Windows NT is something else, but I'd hazard a 'yes' on that,
myself. It's easy to try, though, start the interpreter, open a file, seek()
to a very large number, and write some characters.

-- 
Thomas Wouters <thomas at xs4all.net>

Hi! I'm a .signature virus! copy me into your .signature file to help me spread!




More information about the Python-list mailing list