python 压缩 解压缩 文件

时间:2023-11-16 11:57:50

1. 用zipfile模块打包文件或是目录、解压zip文件

http://wangwei007.blog.51cto.com/68019/1045577

#!/usr/bin/env python
# -*- coding: utf-8 -*- from zipfile import *
import zipfile #解压zip文件
def unzip():
source_zip="c:\\update\\SW_Servers_20120815.zip"
target_dir="c:\\update\\"
myzip=ZipFile(source_zip)
myfilelist=myzip.namelist()
for name in myfilelist:
f_handle=open(target_dir+name,"wb")
f_handle.write(myzip.read(name))
f_handle.close()
myzip.close() #添加文件到已有的zip包中
def addzip():
f = zipfile.ZipFile('archive.zip','w',zipfile.ZIP_DEFLATED)
f.write('file_to_add.py')
f.close() #把整个文件夹内的文件打包
def adddirfile():
f = zipfile.ZipFile('archive.zip','w',zipfile.ZIP_DEFLATED)
startdir = "c:\\mydirectory"
for dirpath, dirnames, filenames in os.walk(startdir):
for filename in filenames:
f.write(os.path.join(dirpath,filename))
f.close()

2. python 调用rar命令行 压缩文件

通过os模块的system()方法调用了系统的rar.exe命令,这个方法会返回一个变量exit_status

import os
import time source = [r'D:\Work\Python\Demo', 'd:\\work\\linux']
target_dir = 'D:\\Work\\backup\\' target = target_dir + time.strftime('%Y%m%d%H%M%S') + '.rar'
zip_command = "rar a %s %s" % (target, ' '.join(source)) if os.system(zip_command) == 0:
print 'Sucessful backup to', target
else:
print 'Backup Failed'