在 Windows 7 上使用 Python 2.7。
我有一个递归函数,可以在路径中查找文件,也可以在子文件夹中查找。
我的问题:
在长时间搜索期间,我希望看到retval
on的值KeyboardInterrupt
。
但是代码在 上引发错误KeyboardInterrupt
,因为它中断了“更深”的函数调用/运行。
我的问题:
有没有办法不中断循环,但仍然打印值,
或者
另一种方法来做同样的事情(不是使用KeyboardInterrupt
而是其他的东西)
我的代码:
import os
def search(path,filename):
try:
global found
folders = []
retval = []
try:
for item in os.listdir(path):
if not os.path.isfile(os.path.join(path, item)):
folders.append(os.path.join(path, item))
else:
if item == filename:
found += 1
retval.append(os.path.join(path, item))
except WindowsError,e:
print str(e)[10:]
for folder in folders:
retval += search(folder,filename)
return retval
except KeyboardInterrupt:
print retval
found = 0
path = 'C:\\'
filename = 'test.txt'
print search(path,filename)