file locked for writing
Gabriel Genellina
gagsl-py2 at yahoo.com.ar
Wed May 14 00:18:24 EDT 2008
En Tue, 13 May 2008 11:57:03 -0300, Dmitry Teslenko <dteslenko at gmail.com>
escribió:
> Hello!
> I use some script in python 2.5 from vim editor (it has python
> bindings) that updates some file
> and then launches another program (ms visual studio, for example) to
> do something with updated file.
> I faced problem when updated file is locked for writing until vim
> editor is closed.
>
> launch vim -> update file -> launch msvc -> file locked
> launch vim -> update file -> launch msvc -> close vim -> file locked
> launch vim -> update file -> -> close vim -> launch msvc -> file okay
>
> Update code is something like that:
>
> backup_file_name = '<some file name>'
> with open(backup_file_name, 'w') as backup_file:
> input = sax.make_parser()
> output = saxutils.XMLGenerator(backup_file, 'cp1252')
> filter = __vcproj_config_filter('<updated file name>', input, output)
> filter.parse('<updated file name>')
> shutil.copyfile(backup_file_name, '<updated file name>')
> os.remove(backup_file_name)
>
> __vcproj_config_filter is a descent of a XMLFilterBase; it substitutes
> some attributes in xml file and that's all.
> must be noted that __vcproj_config_filter instance holds reference to
> output (sax xml parser) object.
Is the code above contained in a function? So all references are released
upon function exit?
If not, you could try using: del input, output, filter
That should release all remaining references to the output file, I
presume. Or locate the inner reference to the output file
(filter.something perhaps?) and explicitely close it.
--
Gabriel Genellina
More information about the Python-list
mailing list