python第三方庫批量安裝指令碼
阿新 • • 發佈:2020-08-07
有時我們需要一次安裝多個第三方庫,單個操作比較繁瑣,可通過此指令碼安裝想要的庫。
注意:需要安裝第三方庫的名稱請儲存在檔案LibName.csv中。
可分組進行安裝,LibName.csv檔案中每行代表一組。
完整程式碼如下:
def main(): path = 'LibName.csv' printInform() items = getItems(path) dic = InstallLibs(items) printSummary(dic) def printInform(): s = ''' 歡迎使用Python第三方庫批量安裝指令碼 需要安裝第三方庫的名稱請儲存在檔案LibName.csv中 回車開始安裝''' print(s) input() def getItems(path): fo = open(path) ls = [] print('') for line in fo: print(line) line = line.replace('\n','') ls.append(line.split(',')) fo.close() print('') return ls def InstallLibs(items): import time num = 0 lts = []; lfs = []; dic = {} for row in items: print("開始安裝。。。。。。\n") for column in row: start = time.perf_counter() for i in range(3): print("\n") if InstallLib(column): lts.append(column) lstatus = '成功' else: lfs.append(column) lstatus = '失敗' print("{}安裝完成。。。\n".format(column)) end = time.perf_counter() ltime = end - start dic[column] = [ltime,lstatus] print("{}安裝成功".format(','.join(lts))) if lfs != []: print("{}安裝失敗".format(','.join(lfs))) num = num+1 print('第{}組安裝完成\n'.format(num)) print("回車繼續安裝下一組") input() lts = []; lfs = [] return dic def InstallLib(item): from os import system try: system("pip install " + item) return True except: return False def printSummary(dic): print("所有庫均已安裝完成,以下為安裝詳細資訊:") s = "\t{:<25}{:>7}s{:^15}".format("Name","Time"," Status") lt = "\t{:<25}{:>7.2f}s{:^15}" print(s) for key in dic.keys(): print(lt.format(key,dic[key][0],dic[key][1])) s += '\n' + lt.format(key,dic[key][0],dic[key][1]) for i in range(5): print("\t\t.\t\t.") try: saveFile(s) except: print("日誌檔案儲存失敗") input("\n按回車退出程式 . . . \n") def saveFile(s): import time import os root = ".//日誌//" path = root + "PythonLibInstall" + time.strftime("%Y%m%d_%H%M%S.log") if not os.path.exists(root): os.mkdir(root) with open(path,'w') as f: f.write(s) f.close() print("日誌檔案儲存成功") main()