python 批量更新第三方库

pip更新库蛮麻烦的,需用 pip install -U 指令来更新,一二个还好办,多了就麻烦了,于是弄了个批量更新的脚本,就是用来subprocess结合pip来实现

import subprocess,re

pipup_check=subprocess.run('pip list -o',shell=False,stdout=subprocess.PIPE,encoding='gbk').stdout
pipup_check_list=[]
for x1 in pipup_check.split('\n')[2:]:
    x2=re.split(' +',x1)
    if len(x2)==4:
        pipup_check_list.append(x2)

for s1 in pipup_check_list:
    try:
        command_result=subprocess.run(f'pip install -U {s1[0]} -i https://pypi.tuna.tsinghua.edu.cn/simple', shell=False, stdout=subprocess.PIPE, encoding='gbk').stdout
        print(command_result)
    except:
        pass

  

subprocess执行命令有几种方法,如call popen等,好像差不多的,shell=False与True一般来说False更安全,可接受列表命令,如['pip','list','-o'],但似乎直接用字符串也没问题,但如果是dir之类的系统内置命令必须是设为True。re.split(' +',x1)
把结果按正则分出来,首个就是库名了,下面就循环执行升级命令就可以了
posted @ 2022-03-24 20:52  天道小黑屋  阅读(339)  评论(0)    收藏  举报