IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python 解压zip文件之后处理一下,重新打包成zip文件。 -> 正文阅读

[Python知识库]python 解压zip文件之后处理一下,重新打包成zip文件。

业务场景:

几年前给一家公司部署了1台win的服务器,这些年运行下来之后,里面有2000个zip文件,每个文件解压之后都会有1个lbd.exe文件,现在发现这个lbdexe文件被病毒感染了,另一台电脑上面有未感染病毒的lbd文件的备份。

需求:

用没毒的lbd.exe文件替换掉有毒的lbdexe文件

方案

思路:遍历当前文件夹内的2000个zip文件,挨个解压到对应的目录,然后把没毒的exe文件直接放进去,此时默认会将有毒的exe文件替换掉。然后把这个文件夹重新打包,这是一台中毒的电脑,这个替换文件的方式不是最好的解决方案,本文章单纯的从技术角度来记录这段代码;

说明

这是面向过程的一段代码,阅读起来非常容易理解,你可以按照你的需求,封装成对应的def都是可以的,今天第一次接触py,研究了1个下午才有了结果,而且试下来非常ok,所以,如果对你有帮助,你可以粘贴我的代码,也不需要署我的名字,只求你可以对本文进行1个点赞操作,这样对我而言是1个反馈,除此之外,别无他求。

代码

import zipfile
import os
import shutil
import time

# 1、遍历当前文件夹内的所有文件
for root, dirs, files in os.walk('./'):
    # time.sleep(2)

    # 删除三个文件夹,可以根据你的业务需求 进行更改
    if os.path.exists('.idea'):
        shutil.rmtree('.idea')

    if os.path.exists('app'):
        shutil.rmtree('app')

    if os.path.exists('data'):
        shutil.rmtree('data')

    for file in files:
        # 2、如果是zip文件的话,就继续处理
        if file.endswith('.zip'):
            # 3、解压zip文件
            test = zipfile.ZipFile(f"{file}")
            # 4、获取zip文件的文件名,解压到同名文件夹内
            file_qian = file.replace('.zip', '')
            test.extractall(file_qian)
            test.close()

            # 5.1、删除旧的zip文件
            os.remove(file)

            # 5.2、将没毒的exe文件替换到这个文件夹
            shutil.copy("C:\\Users\\Mr.Zhang\\Desktop\\LBD.exe", file_qian)

            # 6、新建1个zip文件
            Myzip = zipfile.ZipFile(f"{file}", 'w')
            # 7、将文件夹内的文件遍历
            for root, dirs, files in os.walk(file_qian):
                for file in files:
                    # 8、某些文件不需要被打包进去
                    if '.zip' in file or '.py' in file or '.idea' in file or '.DS_Store' in file:
                        continue
                    # 9、将文件打包进去,把目录里的文件夹内的内容打包到zip文件的根目录,而不是zip内的对应目录,这里是个细节;
                    # 你可以去掉string参数。 这样就好了。 Myzip.write(os.path.join(root, file)
                    string = os.path.join(root, file).replace(f'{file_qian}\\', '/')
                    Myzip.write(os.path.join(root, file), string)
            Myzip.close()

            # 10、我这里有2000个zip文件,解压出来之后就是2000个文件夹,所以我每次做好1个 就删掉1个,不然的话,内容就4000个,太多了。
            if os.path.exists(file_qian):
                shutil.rmtree(file_qian)
    # time.sleep(2)


  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-05-06 11:01:43  更:2022-05-06 11:02:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 16:57:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码