用py在新旧电脑快捷获取pip list安装pip list

突然有一天要换新电脑了, pip list太多了,用py写个自动提取脚本来辅助迁移pip list

用py在新旧电脑快捷获取pip list安装pip list

 用py的pysimpleGUI模块做一个可视化界面显示指令框内容,

点击选择迁出电脑或者迁入电脑,

如果是迁出电脑,提取pip list保存到指定路径下命名的txt文档中,

如果点击迁入电脑, 选择迁入,安装结束后显示“恭喜你已经全部迁移成功!”

 

 

 

 

 话不多说,上代码


import PySimpleGUI as sg
import subprocess
import re

def extract_pip_list():
    result = subprocess.run(['pip', 'list'], capture_output=True, text=True)
    pip_list = result.stdout.strip().split('\n')
    return pip_list

def filter_pip_names(pip_list):
    filtered_pip_list = []
    for item in pip_list:
        name = re.match(r'([^\s]+)', item).group(1)
        filtered_pip_list.append(name)
    return filtered_pip_list

def save_to_file(pip_list, file_path):
    with open(file_path, 'w') as f:
        for item in pip_list:
            f.write(item + '\n')

def install_pip_list(file_path):
    with open(file_path, 'r') as f:
        pip_list = f.read().splitlines()
    for item in pip_list:
        subprocess.run(['pip', 'install', item])

layout = [
    [sg.Text('请选择操作:')],
    [sg.Radio('迁出电脑', 'operation', default=True, key='-EXPORT-'), sg.Radio('迁入电脑', 'operation', key='-IMPORT-')],
    [sg.Output(size=(50, 10), key='-OUTPUT-')],

    [sg.Button('确定')]
]

window = sg.Window('迁移程序', layout)

while True:
    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break
    if event == '确定':
        if values['-EXPORT-']:
            save_file_path = sg.popup_get_file('选择保存文件的路径', save_as=True)
            if save_file_path:
                pip_list = extract_pip_list()
                filtered_pip_list = filter_pip_names(pip_list)
                save_to_file(filtered_pip_list, save_file_path)
                sg.popup('保存成功!')
        elif values['-IMPORT-']:
            install_file_path = sg.popup_get_file('选择安装文件的路径')
            if install_file_path:
                install_pip_list(install_file_path)
                sg.popup('恭喜你已经全部迁移成功!')

window.close()

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dieter.ding

祝老板码来财

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值