玩转psutil 教你用Python检测U盘插入和拔出( 二 )


# *  ---全局数据 及时更新
# */
local_device = []                   #当地驱动器
local_letter = []                   #当地盘符
local_number = 0                    #当地驱动器数
mobile_device = []                  #移动设备
mobile_letter = []                  #移动设备盘符
mobile_number = 0                   #移动设备数
这里我们用到了一个windows API函数MessageBox, 挪用提醒框用, 不消tkinter的原因是因为tkinter只为了画一个提醒框, 半斤八两不便利 。
有关这个函数请参考百科MessageBox或者MSDN

玩转psutil 教你用Python检测U盘插入和拔出



4界说一个函数, 用于更新数据(也就是上面界说的几个全局变量的数据),返回驱动器数目
def updata():
    global local_device,local_letter,local_number,\
           mobile_device,mobile_letter,mobile_number
    #引入全局变量
    tmp_local_device,tmp_local_letter = [],[]
    tmp_mobile_device,tmp_mobile_letter = [],[]
    tmp_local_number,tmp_mobile_number = 0,0
    
    try:
        part = psutil.disk_partitions()
    except:
        print("法式发生异常!!!")
        box(None,"很抱愧, 法式发生了异常","致命错误",0)
        sys.exit(-1)
    else:
        #* 驱动器分类
        for i in range(len(part)):
            tmplist = part[i].opts.split(",")
            if tmplist[1] == "fixed":                       #挂载选项数据内读到fixed = 当地设备
                tmp_local_number = tmp_local_number + 1
                tmp_local_letter.app(part[i].device[:2])     #获得盘符信息
                tmp_local_device.app(part[i])
            else:
                tmp_mobile_number = tmp_mobile_number + 1
                tmp_mobile_letter.app(part[i].device[:2])
                tmp_mobile_device.app(part[i])
                
        #*浅切片
        local_device,local_letter = tmp_local_device[:],tmp_local_letter[:]
        mobile_device,mobile_letter = tmp_mobile_device[:],tmp_mobile_letter[:]
        local_number,mobile_number = tmp_local_number,tmp_mobile_number
        
    return len(part)                                        #返回当前驱动器数

玩转psutil 教你用Python检测U盘插入和拔出

猜你喜欢