python当前目录子目录文件_使用Python对当前目录及其子目录中的文件进行压缩

在学习或工作的过程中,当完成某一部分的工作之后我们可以对其内容进行压缩。通常情况下,这些工作在一个包含子文件的文件中。下面我们将介绍使用Python中的os模块对当前目录及其子目录中的文件进行压缩。代码如下:

import os

path = os.getcwd()

for folderName, subfolders, filenames in os.walk( path ):

workPath = os.path.join( path, folderName)

os.chdir( workPath )

print( 'folder : {}'.format( workPath ) )

# compression

with zipfile.ZipFile( 'results.zip', 'w', compression=zipfile.ZIP_DEFLATED, allowZip64=True) as zip:

for filename in os.scandir( '.' ):

if filename.endswith('lmp') or filename.endswith('.sh'):

zip.write( filename )

os.remove( filename )

# uncompression

with zipfile.ZipFile('results.zip', 'r') as zip :

zip.extractall(path='.')

os.remove('results.zip')

os.getcwd()得到当前的路径。os.walk返回给我们三个值:以字符串的形式返回当前文件夹的名字(folderName);

以字符串的形式返回当前文件夹下的子文件夹的名字(subfolders);

以字符串的形式返回当前文件夹下的文件的名字(filenames)。

os.chdir()与shell中的cd命令的功能一致,进入到指定文件夹。接下来,使用zipfile方法对文件进行压缩。首先,指定得到的压缩文件名(results.zip),指定写入模式(w),压缩方式(zipfile.ZIP_DEFLATED),当得到的压缩文件大于4GB时使用ZIP64扩展名。

for filename in os.scandir( '.' ):

列出当前目录下的文件及文件夹。这里我们需要注意,我们之前有一个os.chdir()的命令,也就是说我们的当前目录是os.walk()中的fileName。

我们也可以根据文件名的特点对文件进行选择然后压缩,压缩之后进行删除。code如下:

if filename.endswith('lmp') or filename.endswith('.sh'):

zip.write( filename )

os.remove( filename )

完成压缩部分之后,如果我们需要回看文件那么我们需要对压缩文件进行解压。code如下:

with zipfile.ZipFile('results.zip', 'r') as zip :

zip.extractall(path='.')

os.remove('results.zip')

压缩文件名为results.zip,压缩模式为读取(r)。讲压缩文件中的内容解压到当前文件zip.extractall(path='.'),解压之后对压缩文件进行删除os.remove('results.zip')。

小结:

本篇短文介绍了用os模块对文件进行压缩和解压处理。希望介绍的内容对大家有帮助。对于别的具体的方法,请参考Python的os模块。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值