Okay, it's always good that strange things are repeatable and happens with simple scripts.
Are you saying "a" is a folder? So, the failure is only with copying folder? Not individual file? Antoine De Groote wrote: > Yes it's strange, I never had the problem before, either. It seems now > to be only the case for folders. A very simple > > shutil.copy('a', 'b') > > already fails with the error message. > > I reinstalled Python, but that didn't change anything... > > Regards, > antoine > > John Henry wrote: > > I use the copy function a lot and never have problem. I suggest that > > you write a no brainer standalone test code and if it still fails > > there, then you have a problem with your installation. > > > > Antoine De Groote wrote: > >> Google tells quite some things about it, but none of them are satisfactory. > >> > >> I'm on Windows, and shutil operations (e.g. move, copy) throw [Errno 13] > >> Permission denied all the time, for the source files. It seems that this > >> is the case for all my files. But what I don't understand is that > >> yesterday it still worked. I didn't change anything on my system though > >> (at least not that I am aware of). I restarted the computer several > >> times to see if that helped, but it didn't. Also I can't find a process > >> that would be using the files... > >> > >> Has anybody experienced this problem before, or have a solution? > >> > >> Kind regards, > >> antoine > >> > >> Here's the code that throws the errors > >> > >> [...] > >> for l in files: > >> from_file = os.path.join(dir, l) > >> to_file = from_file.replace(tree_top, backup_dir) > >> try: > >> if not os.path.exists(to_file): > >> log('Copying new %s' % from_file) > >> counter_new += 1 > >> shutil.copy2(from_file, to_file) > >> elif int(os.path.getmtime(from_file)) > > >> int(os.path.getmtime(to_file)): > >> log('Copying modified %s' % from_file) > >> counter_mod += 1 > >> shutil.copy2(from_file, to_file) > >> elif os.path.getsize(from_file) > > >> os.path.getsize(to_file): > >> log('Sizes differ, but not rest: Copying %s' % > >> from_file) > >> counter_special += 1 > >> shutil.copy2(from_file, to_file) > >> elif os.path.getsize(from_file) < > >> os.path.getsize(to_file): > >> log('Orig file smaller than backup file: Copying > >> %s' % from_file) > >> counter_special += 1 > >> shutil.copy2(to_file, backup_dir+'DIFF_SIZE') > >> shutil.copy2(from_file, to_file) > >> else: > >> #log('not treated: %s' % l) > >> pass > >> > >> except (OSError, IOError), e: > >> not_accessible += 1 > >> print e > >> [...] > > -- http://mail.python.org/mailman/listinfo/python-list