Check file is locked?

Rajat rajat.dudeja at gmail.com
Thu Jul 9 03:55:37 EDT 2009


On Jul 8, 12:45 pm, Tim Golden <m... at timgolden.me.uk> wrote:
> Rajat wrote:
> > On Jul 8, 4:57 am, Lawrence D'Oliveiro <l... at geek-
> > central.gen.new_zealand> wrote:
> >> In message <mailman.2795.1246997268.8015.python-l... at python.org>, Christian
>
> >> Heimes wrote:
> >>> By the way most operating systems don't lock a file when it's opened for
> >>> reading or writing or even executed.
> >> The general conclusion seems to be that mandatory locking is more trouble
> >> than it's worth.
>
> > My OS is a windows XP sp3. All I'm trying to achieve is to close an
> > application ( which could be a notepad, a wordpad or some other text
> > editor) that have opened my file. Once the file is closed I can easily
> > delete that file.
>
> > I guess, if file is opened by one of that application, the file must
> > be locked and so is the reason I cannot delete the file.
>
> I assume that your real requirement is: I can't open/close/delete
> this file; it must be locked by something else; what is that
> something else?
>
> The simplest thing is probably to run sysinternals' handle util:
>
>  http://technet.microsoft.com/en-us/sysinternals/bb896655.aspx
>
> and use the subprocess module to parse the output.
> That will give you the pid, and you can then use, eg, psutil:
>
>  http://code.google.com/p/psutil/
>
> to get the details of the process.
>
> TJG- Hide quoted text -
>
> - Show quoted text -

I've used the Handle.exe and got the following results:

------------------------------------------------------------------------------
notepad.exe pid: 3540 COMP\rajatd
    C: File  (RW-)   C:\Documents and Settings\rajatd\Desktop
   10: File  (RW-)   C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-
Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83
   44: File  (RW-)   C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-
Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83
   7C: Section       \BaseNamedObjects\ShimSharedMemory

------------------------------------------------------------------------------
wordpad.exe pid: 2212 COMP\rajatd
   1C: File  (RW-)   C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-
Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83
   40: File  (RW-)   C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-
Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83
   74: Section       \BaseNamedObjects\ShimSharedMemory
   F8: Section       \BaseNamedObjects
\CiceroSharedMemDefaultS-1-5-21-57989841-1580818891-839522115-1653
  170: Section       \BaseNamedObjects\RotHintTable
  184: File  (RW-)   C:\Documents and Settings\rajatd\My Documents

I've also parsed this output for the PIDS. But no where in the result
I got to know what file has been associated with a PID.

Does for this I need to use pustil?



More information about the Python-list mailing list