import os
plist=os.popen("pip list") # 執行windows cmd命令,獲取全部包package列表,並獲取返回結果到plist
#跳過第1,2行
line = plist.readline()
line = plist.readline()
while True: # 循環讀取結果
line = plist.readline() #每次讀一行
#若是遇到一個空白行,readline()並不會返回一個空串,由於每一行的末尾還有一個或多個分隔符,
#所以「空白行」至少會有一個換行符或者系統使用的其餘符號。只有當真的讀到文件末尾時,纔會讀到空串""
if not line: # 空串的not返回true,即not line時爲讀到EOF(文件末尾)
break # 讀取結束,中斷循環
pos=line.find(" ") # 查找包名與版本號中間空格出現的位置
pname=line[:pos] # 截取包名
if pname in ('pip','wheel','setuptools'): # 若是是這幾個包,不進行卸載
continue
cmd = 'echo y | pip uninstall '+ pname # 生成自動卸載包命令
out=os.system(cmd) # system不返回命令過程,只返回結果是否成功,0表明成功。區別popen返回命令過程內容
if out == 0 :
print(pname,' 卸載成功')
else:
print(pname,' 卸載失敗')
plist.close() # 關閉流windows