利用Python如何实现在后台解压或压缩文件-创新互联

利用Python如何实现在后台解压或压缩文件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

创新互联建站是专业的南靖网站建设公司,南靖接单;提供网站设计、做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行南靖网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

1.需求描述

编写一个 Python 程序,每次下载压缩包形式的文件后,自动将内部文件解压到当前文件夹后将压缩包删除,通过本案例可以学到的知识点:

  • os 模块综合应用
  • glob 模块综合应用
  • 利用 gzip zipfile rarfile tarfile 模块解压文件

2.步骤分析和前置知识

码代码之前需要将复杂问题解释成多个明确的要求,即这个程序实现的逻辑为:

  1. 定时检测某个文件夹(如 download 文件夹)是否存在压缩文件
  2. 如果有新出现的压缩文件则将其解压到当前文件夹内的新文件夹中 删除压缩文件
  3. 提到压缩文件就要分不同压缩格式进行讨论,主要有以下4种:

提到压缩文件就要分不同压缩格式进行讨论,主要有以下4种:

.gz: 即 gzip,通常只能压缩一个文件
.tar: 本质上不是压缩工具而是打包工具,可以跟 .gz 配合形成 .tar.gz 的打包压缩格式 .zip: 和 .tar.gz 很类似但可以打包压缩多个文件
.rar: 打包压缩文件,最初用于 DOS

因此,文件是否为压缩文件的判断逻辑可以如下:

  1. 建立一个含压缩包后缀的列表 compressed_lst = ['gz', 'tar', 'zip', 'rar']
  2. 目标文件夹下的所有文件名运行 filename.split(.)[-1] 获取后缀名
  3. 判断后缀名是否在 compressed_lst 中,如果存在则运行后续的解压代码
  4. 如果是以 gz 结尾的文件,解压后需要再次判断是否是以 .tar 结尾,并进行相应处理

不同压缩文件的解压代码各不相同,在后续代码操作中具体展开。

3.代码实现

首先是获取 download 文件夹下所有文件的文件名

import glob
import os

path = r'C:\xxxx\download'
file_lst = glob.glob(path + '/*')
# 列表推导式
filename_lst = [os.path.basename(i) for i in file_lst]

print(filename_lst)

本文标题:利用Python如何实现在后台解压或压缩文件-创新互联
文章网址:http://pwwzsj.com/article/cdhsph.html