python我尝试使用以下代码遍历电脑所有硬盘文件,可是在测试多次后程序会莫名其妙中断并强制退出,使用sys.stderr也没捕获到任何信息,且每次扫描到的位置为aptana的目录和回收站文件时(同时)才发生崩溃(应该是巧合),每次运行后1秒左右就崩溃(没扫描完),请问如何解决?
fileAllPath = []
def getDiskList():
l = []
for c in string.ascii_uppercase:
disk = c + ':\\'
if os.path.isdir(disk):
l.append(disk)
#drive_node = tree_view.insert(pc_node, 'end', text=disk, image=drive_image)
return l
DONE = False
def getFileTree():
def getOneDiskTree(i):
global DONE,threadnum
threadnum = 0
t = []
def walkDir(p,filenames,sst):
global threadnum
threadnum += 1
for filename in filenames:
fileAllPath.append(p + os.sep + filename)
print("\n" + p + os.sep + filename,end = "")
t[sst] = True
threadnum -= 1
for p, dirnames, filenames in os.walk(i):
t.append(False)
sst = len(t) - 1
if threadnum < 900:
td(target = walkDir,args = (p,filenames,sst)).start()
else:
walkDir(p,filenames,sst)
while not any(t):
time.sleep(0.5)
DONE = True
t = time.time()
path = getDiskList()
for i in path:
td(target = getOneDiskTree,args = (i,)).start()
while not DONE:
time.sleep(0.5)
return time.time() - t
t = getFileTree()
with open("./t.txt","w",encoding = "utf-8") as f:
f.write(str(t) + "\n" + str(fileAllPath))
os._exit(0)