On Wed, Mar 23, 2016 at 11:17 PM, Steven D'Aprano <st...@pearwood.info> wrote: > import os > open('a123.junk', 'w') > open('b123.junk', 'w') > try: > os.rename('a123.junk', 'b123.junk') > except OSError as e: > print(e.winerror) # Windows only > print(e.errno) > print(repr(e)) > > os.unlink('a123.junk') > os.unlink('b123.junk') >
32-bit Python on 64-bit Windows 7 in a VirtualBox VM under Debian Testing. Python 3.5.1 (v3.5.1:37a07cee5969, Dec 6 2015, 01:38:48) [MSC v.1900 32 bit (In tel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import os >>> open('a123.junk', 'w') <_io.TextIOWrapper name='a123.junk' mode='w' encoding='cp1252'> >>> open('b123.junk', 'w') <_io.TextIOWrapper name='b123.junk' mode='w' encoding='cp1252'> >>> try: ... os.rename('a123.junk', 'b123.junk') ... except OSError as e: ... print(e.winerror) # Windows only ... print(e.errno) ... print(repr(e)) ... 183 17 FileExistsError(17, 'Cannot create a file when that file already exists') >>> os.unlink('a123.junk') >>> os.unlink('b123.junk') Traceback (most recent call last): File "<stdin>", line 1, in <module> PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'b123.junk' >>> The last error is because _ is retaining the open file, so it hasn't been closed. Entering any non-None expression allows the unlink. ChrisA -- https://mail.python.org/mailman/listinfo/python-list