Steven D'Aprano <[EMAIL PROTECTED]> wrote: > This whole approach > assumes that Windows does the sensible thing of returning a unique error > code when you try to open a file for reading that is already open for > writing. >
So how would you use a file to share data then? By default Python on Windows allows you to open a file for reading unless you specify a sharing mode which prevents it: the easiest way is probably to call win32file.CreateFile with appropriate parameters. In one window: >>> f = open('SHARE.txt', 'w') >>> f.write('hello') >>> f.flush() >>> and then while that other window is open: >>> handle = win32file.CreateFile("SHARE.txt", ... win32file.GENERIC_WRITE, ... 0, # i.e. "not shared" is the default ... None, ... win32file.OPEN_ALWAYS, ... win32file.FILE_ATTRIBUTE_NORMAL, ... None) Traceback (most recent call last): File "<stdin>", line 7, in <module> pywintypes.error: (32, 'CreateFile', 'The process cannot access the file because it is being used by another process.') >>> f = open("SHARE.txt", "r") >>> f.read() 'hello' The CreateFile call was copied from http://mail.python.org/pipermail/python-list/2002-January/122462.html -- http://mail.python.org/mailman/listinfo/python-list