首页 > 代码库 > Python搜索文件

Python搜索文件

这里以在windows下搜索并启动QQ为例,我先把开始菜单、桌面和快速启动栏找了一遍,这样能缩短查找时间。如果找不到再到每个分区中查找。  

import os
disk=[‘D‘,‘E‘,‘F‘,‘G‘,‘H‘]
def search_file(filename,search_path,pathsep=os.pathsep):
    for path in search_path.split(pathsep):
        candidate = os.path.join(path,filename)
        if os.path.isfile(candidate):
            return os.path.abspath(candidate)
if __name__==‘__main__‘:
    found=False
    for i in os.walk(‘C:\ProgramData\Microsoft\Windows\Start Menu\Programs‘):
        search_path=i[0]
        find_file=search_file(‘腾讯QQ.lnk‘,search_path)
        if find_file:
            os.startfile(find_file)
            found=True
    if not found:
        for i in os.walk(‘C:\Users\Jack\Desktop‘):
            search_path=i[0]
            find_file=search_file(‘QQ.exe.lnk‘,search_path)
            if find_file:
                os.startfile(find_file)
                found=True
    if not found:
        for i in os.walk(‘C:\Users\Jack\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch‘):
            search_path=i[0]
            find_file=search_file(‘腾讯QQ.lnk‘,search_path)
            if find_file:
                os.startfile(find_file)
                found=True
    if not found:
        for i in range(0,5):
            for j in os.walk(disk[i]+‘:/‘):
                search_path=j[0]
                find_file=search_file(‘QQProtect.exe‘,search_path)
                if find_file:
                    os.startfile(find_file)
                    found=True
    if not found:
        for i in os.walk(‘C:/Program Files/QQ‘):
            search_path=i[0]
            find_file=search_file(‘QQProtect.exe‘,search_path)
            if find_file:
                os.startfile(find_file)
                found=True
    if not found:
        print"无法找到QQ"