python文件操作2

import os
import zipfile
import sys
cwd = os.getcwd()
start = cwd.rfind(os.sep)+1
zfile = cwd[start:]+".zip"
z = zipfile.ZipFile(zfile,mode="w",compression=zipfile.ZIP_DEFLATED)
try:
for dirpath,dirs,files in os.walk(cwd):
for file in files:
if file == zfile or file == "zip.py":
continue
z_path = os.path.join(dirpath,file)
z.write(z_path,z_path[start:])
z.close()
finally:
if z:
z.close()


import os
import zipfile
import sys
cwd = os.getcwd()
start = cwd.rfind(os.sep)+1
zfile = cwd[start:]+".zip"
z = zipfile.ZipFile(zfile,mode="w",compression=zipfile.ZIP_DEFLATED)
try:
for dirpath,dirs,files in os.walk(cwd):
for file in files:
if file == zfile or file == "zip.py":
continue
z_path = os.path.join(dirpath,file)
z.write(z_path,z_path[start:])
z.close()
finally:
if z:
z.close()


格式编码的压缩和解压缩的module,zipfile里有两个非常重要的class:ZipFile和ZipInfo。ZipFile是主要的类,用来创建和读取zip文件而ZipInfo是存储的zip文件的每个文件的信息。

在这里我需要把一个目录压缩,这就要将目录里的文件一个文件一个文件的加入,然后在使用zipfile的ZipFile类的时候,再一个一个写入压缩文件。

代码
1#!/usr/bin/env python
2#coding=utf-8
3
4import os
5import zipfile
6
7filelist = []
8for root, dirs, files in os.walk("D:\\clean"):
9 for name in files:
10 filelist.append(os.path.join(root, name))
11
12zf = zipfile.ZipFile("d:\\test.zip", "w", zipfile.zlib.DEFLATED)
13for tar in filelist:
14 zf.write(tar)


python中使用ZIP压缩备份
import os
import zipfile
import time


# 压缩目录
source_dir = r'F:\web'
# 按时间生成文件名称
target_file = time.strftime('%Y%m%d%H%M%S') + '.zip'

myZipFile = zipfile.ZipFile(target_file, 'w' )
# 压缩所有文件,包含子目录
for root,dirs,files in os.walk(source_dir):
for vfileName in files:
fileName = os.path.join(root,vfileName)
myZipFile.write( fileName, fileName, zipfile.ZIP_DEFLATED )

# 压缩完成
myZipFile.close()

#####################################################################

import tarfile

targzfile = "xxxx.xml.gz"
outputpath = '.'

tar = tarfile.open(targzfile, "r:gz")
for tarinfo in tar:
print tarinfo.name
tar.extract(tarinfo.name, outputpath)
tar.close()


import gzip
import zipfile

file = gzip.GzipFile(strZipFile, "r")
outFile = open(strDstFile ,"w")
outFile.write(file.read())
outFile.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值