吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4193|回复: 1
收起左侧

[Windows] league_skin自动更新软件

[复制链接]
lvhmst 发表于 2022-1-24 21:58
本帖最后由 lvhmst 于 2022-1-24 22:00 编辑

以前用python编写的一个league_skin自动更新脚本,通过检测当前目录是否存在文件以及相应的网络版本号对比检查更新,若存在更新则进行下载解压并覆盖原有文件。



代码及注释如下:

[Python] 纯文本查看 复制代码
import requests
from lxml import etree
import os
import time
import zipfile
import shutil  #删除模块

#v1.1

def download(url, filename):
    start = time.time() #下载开始时间
    try:
        response = requests.get(url, stream=True)  # 来获取服务器的原始套接字响应
        size = 0  # 初始化已下载大小
        chunk_size = 1024  # 每次下载的数据大小
        content_size = int(response.headers['content-length'])  # 下载文件总大小
        if response.status_code == 200:     #判断是否响应成功
            print('Start download,[File size]:{size:.2f} MB'.format(size = content_size / chunk_size /1024))   #开始下载,显示下载文件大小
            with open(filename, 'wb') as f:     #显示进度条
                for data in response.iter_content(chunk_size=chunk_size):   #边下载边存储
                    f.write(data)
                    size += len(data)
                    print('\r'+'[下载进度]:%s%.2f%%' % ('>'*int(size*50/ content_size), float(size / content_size * 100)) ,end=' ')
        end = time.time()   #下载结束时间
        print('Download completed!,times: %.2f秒' % (end - start))  #输出下载用时时间
    except:
        print('可能存在网络问题,下载失败,请重试')
        os.system('pause')
        exit()


def del_dir():     #删除原有文件夹
    path = os.getcwd()
    files = os.listdir(path)
    try:
        for file in files:
            if 'MODSKIN' in file:
                path = path + '\\' + file
                print(path)
                shutil.rmtree(path)
                print('成功删除'+ path)

    except:
        print('删除旧文件夹失败或未找到')


def unzip_file(filename, dir):
    if(zipfile.is_zipfile(filename)):
        fz = zipfile.ZipFile(filename, 'r')     #读取zip文件
        for file in fz.namelist():  #返回压缩包内所有文件名的列表。
            fz.extract(file, dir)    #将zip文档内的指定文件解压到当前目录
        print('解压成功')
    else:
        print('解压失败')


def start():
    url = 'http://leagueskin.net/p/download-mod-skin-2020-chn'
    try:
        result = requests.get(url).content
    except:
        print('无法连接网络')
        exit()
    soup = etree.HTML(result)
    down_url = soup.xpath('//a[@id="link_download3"]/@href')  # 内容提取
    down_url = down_url[0]
    filename = str(down_url).split('/')
    filename = filename[3]
    dir_name = filename.replace('.zip', '')
    if not os.path.exists(dir_name):
        print("开始处理,请等待")
        del_dir()
        download(down_url, filename)
        dir = os.path.join(os.getcwd(), dir_name)
        unzip_file(filename, dir)
        try:
            print('尝试删除压缩包')
            file_path = os.path.join(os.getcwd(), filename)
            print(file_path)
            os.remove(file_path)
            print('删除成功')
        except:
            print('删除失败')
    else:
        print("没有更新的版本")
    os.system('pause')


if __name__ == '__main__':
    start()


已经打包成品软件链接:https://wwz.lanzouo.com/iL2sPz7zlmf

免费评分

参与人数 1吾爱币 +1 收起 理由
花烬煙 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

花烬煙 发表于 2022-1-26 23:51
感谢发布原创作品,吾爱破解论坛因你更精彩!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-10-19 10:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表