python 删除文件的奇怪现象 。该如何解决

python 删除文件的奇怪现象 。。。。。。。。。。。。
如下代码,前面的都可以正常删除文件

而最后一个os.remove死活都报错。Error 32

这个到底是什么问题啊,求大神啊。。。。。。

os.remove(cPath+'\\'+'t')
os.remove(cPath+'\\'+cName)
os.rename(cPath+'\\ok',cPath+'\\'+cName)
r = 0
while r < 40:
if r < 10:
rr = '0'+str(r)
else:
rr = str(r)
if os.path.exists(cPath+'\\T'+rr) == True:
os.remove(cPath+'\\T'+rr)
r = r + 1

------解决方案--------------------
不会是目录吧,参考这样操作:
import os
for root, dirs, files in os.walk(top, topdown=False):
    for name in files:
        os.remove(os.path.join(root, name))
    for name in dirs:
        os.rmdir(os.path.join(root, name))

------解决方案--------------------
Error 32 是 IOError,而不是OSError
所以,检查文件是否在使用中或者与其他运行中工具存在依赖关系,可能比较靠谱
------解决方案--------------------
引用:
Quote: 引用:

不会是目录吧,参考这样操作:
import os
for root, dirs, files in os.walk(top, topdown=False):
    for name in files:
        os.remove(os.path.join(root, name))
    for name in dirs:
        os.rmdir(os.path.join(root, name))


不是目录,单个的文件


还有可能是这个文件被打开了。。
------解决方案--------------------
写path,尤其是windows,我一般都谨慎用 r'' 格式
或者 os.sep
或者直接写 'c:/xxx/xxx',python是能识别的
------解决方案--------------------
查了一下
WindowsError: [Error 32] The process cannot access the file beacause it is being used by another process.
这就比较明显了
------解决方案--------------------
引用:
Quote: 引用:

查了一下
WindowsError: [Error 32] The process cannot access the file beacause it is being used by another process.
这就比较明显了


那我怎么测试它是被哪个进程使用的,或者说怎么强制关闭文件

这个比较难,至少我不知道,很多很强大的文件管理器也没做这个——也可能避免误删文件的原因
------解决方案--------------------
引用:
Quote: 引用:

查了一下
WindowsError: [Error 32] The process cannot access the file beacause it is being used by another process.
这就比较明显了


那我怎么测试它是被哪个进程使用的,或者说怎么强制关闭文件


这个好办,windows下的工具太多了。例如:http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
------解决方案--------------------
删除最后一个之前,打一下Log,看看是什么文件,继而再找原因。
------解决方案--------------------
在网上搜下unlocker,可以检测文件被哪个进程占用,不行的话,重启下再试
------解决方案--------------------
既然是自己写代码,那么养成习惯打开的文件处理完后要显式关闭,不哟偷懒阿...