os.rename [Errno 31] Too many links
richardbp at gmail.com
Thu Mar 11 07:22:56 CET 2010
On Mar 11, 3:08 am, Thomas Guettler <h... at tbz-pariv.de> wrote:
> Richard wrote:
> > I want to atomically write to a file so have been using temporary
> > files and renaming:
> > temp = tempfile.NamedTemporaryFile(delete=False)
> > temp.file.write(data)
> > temp.file.close()
> > os.rename(temp.name, output_file)
> > This worked but after 39567 files os.rename raises an OSError: [Errno
> > 31] Too many links
> > I can still create files in this directory so I doubt it is a platform
> > limitation.
> > Can you tell what is wrong? Am I not freeing the temporary file
> > resources properly?
> If you are on linux you can have a look at the open file descriptors of
> a running process like this:
> ls -l /proc/PID/fd/
> But I guess it is a limitation of your filesystem. What do you use?
> I once had this problem with ext2. It has a low limit for
> With xfs the limits are much greater.
> Thomas Guettler,http://www.thomas-guettler.de/
> E-Mail: guettli (*) thomas-guettler + de
I am using Ubuntu 9.10 with ext3, which I believe has a limit for the
number of subdirectories but not files.
Thanks for the open file descriptor tip - I will check that out.
More information about the Python-list