How to find a file or a device is currently used by which processor which program ?

Tim Golden tim.golden at viacom-outdoor.co.uk
Wed Oct 11 05:27:12 EDT 2006


[fdu.xiaojf at gmail.com]

| When I want to uninstall my usb disk on windows, the 
| operating systems 
| sometimes tells me the device is being used by other program. But I 
| can't find which program is using it. Can I do this using python ?

This is really one of those questions that could better
be rephrased: can I do this *without* using Python? By
which I mean: there's nothing built into Python or its
standard libraries which will determine which open program
is holding which files open on your filesystem. I'm quite
certain there exists some more or less brute-force 
technique for this in Windows in general, but you'd really
have to find that, and then determine how to do it in
Python.

(Bit of Googling later...)
I suggest you look at the Handle util from sysinternals.com
(always a good place to start looking for these kind of
things):

http://www.sysinternals.com/utilities/handle.html

You can run it against a directory or a specific file
and its output it fairly parseable. Example, where I
have a python process holding open a "temp.tmp" file
my c:\temp directory:

<dump>
C:\>handle c:\temp

Handle v3.2
Copyright (C) 1997-2006 Mark Russinovich
Sysinternals - www.sysinternals.com

cmd.exe            pid: 4260      C: C:\temp
python.exe         pid: 5296     58: C:\temp\temp.tmp
cmd.exe            pid: 5232     94: C:\temp
python.exe         pid: 2672     94: C:\temp

C:\>
</dump>

You could use the subprocess module (or its predecessors) to
scan the output fairly easily, I imagine. What you with the 
process name / id is up to your needs, of course :)

TJG

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________



More information about the Python-list mailing list