python压缩文件夹|Python 中怎样删除zip压缩文件夹中某个文件

python压缩文件夹|Python 中怎样删除zip压缩文件夹中某个文件的第1张示图

⑴ python怎样压缩和解压缩ZIP文件(转)

榭梢越�姓庋�牟僮鳌2还� Python 中的 zipfile 模块不能处理多卷的情况,不过这种情况并不多见,因此在通常情况下已经足够使用了。下面我只是对一些基本的 zipfile 操作进行了记录,足以应付大部分的情况了。zipfile 模块可以让你打开或写入一个 zip 文件。比如:import zipfilez = zipfile.ZipFile('zipfilename', mode='r') 这样就打开了一个 zip 文件,如果mode为'w'或'a'则表示要写入一个 zip 文件。如果是写入,则还可以跟上第三个参数: compression=zipfile.ZIP_DEFLATED 或 compression=zipfile.ZIP_STORED ZIP_DEFLATED是压缩标志,如果使用它需要编译了zlib模块。而后一个只是用zip进行打包,并不压缩。在打开了zip文件之后就可以根据需要是读出zip文件的内容还是将内容保存到 zip 文件中。读出zip中的内容很简单,zipfile 对象提供了一个read(name)的方法。name为 zip文件中的一个文件入口,执行完成之后,将返回读出的内容,你把它保存到想到的文件中即可。写入zip文件有两种方式,一种是直接写入一个已经存在的文件,另一种是写入一个字符串。对 于第一种使用 zipfile 对象的 write(filename, arcname, compress_type),后两个参数是可以忽略的。第一个参数是文件名,第二个参数是表示在 zip 文件中的名字,如果没有给出,表示使用与filename一样的名字。compress_type是压缩标志,它可以覆盖创建 zipfile 时的参数。第二种是使用 zipfile 对象的 writestr(zinfo_or_arcname, bytes),第一个参数是zipinfo 对象或写到压缩文件中的压缩名,第二个参数是字符串。使用这个方法可以动态的组织文件的内容。类源码为:[python] view plain# coding:cp936 # Zfile.py # xxteach.com import zipfile import os.path import os class ZFile(object): def __init__(self, filename, mode='r', basedir=''): self.filename = filename self.mode = mode if self.mode in ('w', 'a'): self.zfile = zipfile.ZipFile(filename, self.mode, compression=zipfile.ZIP_DEFLATED) else: self.zfile = zipfile.ZipFile(filename, self.mode) self.basedir = basedir if not self.basedir: self.basedir = os.path.dirname(filename) def addfile(self, path, arcname=None): path = path.replace('//', '/') if not arcname: if path.startswith(self.basedir): arcname = path[len(self.basedir):] else: arcname = '' self.zfile.write(path, arcname) def addfiles(self, paths): for path in paths: if isinstance(path, tuple): self.addfile(*path) else: self.addfile(path) def close(self): self.zfile.close() def extract_to(self, path): for p in self.zfile.namelist(): self.extract(p, path) def extract(self, filename, path): if not filename.endswith('/'): f = os.path.join(path, filename) dir = os.path.dirname(f) if not os.path.exists(dir): os.makedirs(dir) file(f, 'wb').write(self.zfile.read(filename)) def create(zfile, files): z = ZFile(zfile, 'w') z.addfiles(files) z.close() def extract(zfile, path): z = ZFile(zfile) z.extract_to(path) z.close()

⑵ python中如何对文件进行 zlib压缩

文件读取以后也是一个大的字符串,整个一起压缩就可以了。

示例:

fin=open('in.txt','r')fout=open('out.txt','w')str=fin.read()//compressstrfout.write(compressed_str)fout.close()fin.close()

⑶ 如何通过Python压缩解压缩zip文件

解压缩抄

importzipfileimportosdefun_zip(file_name):"""unzipzipfile"""zip_file=zipfile.ZipFile(file_name)ifos.path.isdir(file_name+"_files"):passelse:os.mkdir(file_name+"_files")fornamesinzip_file.namelist():zip_file.extract(names,file_name+"_files/")zip_file.close()

打包

zipfile.ZipFile('xxx.zip','a/w/x').write('xxx.txt')

'w'以截断并写入新文件'a'以附加到现有文件,或'x'以专门创建和写入新文件。

⑷ python如何从zip压缩包内过滤出指后缀文件

解决方案import osimport fnmatchimport zipfileimport redef iterfindfiles(path, fnexp):for root, dirs, files in os.walk(path):for filename in fnmatch.filter(files, fnexp):yield os.path.join(root, filename)result=""for filelist in iterfindfiles("D:Temporary", "*.zip"):z = zipfile.ZipFile(filelist, "r")for file in z.namelist():result=result+file+"n"print "以下内容是压缩包所包含文件:"print result+"rn"unicodepage=result.decode("utf-8")myItems=re.findall("([wd]*?.txt)",unicodepage,re.S)items=[]print "以下是获取所有以.txt结束的文本"for item in myItems:items.append(item.replace("rn",""))print items

⑸ python 中如何压缩文件,并指定文件的压缩之后的大小。

这个简单啊。你先压缩成一个ZIP文件。比如 example.zip然后用python将它分割成,5个文件。e1,e2,e3,e4,e5邮件发出去后,对方收到邮件,另存附件,然后在目录下运行 e1+e2+e3+e4+e5 example.zip此时windows就将依次将5个文件复制到同一个文件里去。

⑹ python怎样压缩和解压缩ZIP文件

使用 zipfile 模块进行 ZIP 压缩和解压缩

importzipfileimportos.pathimportosclassZFile(object):def__init__(self,filename,mode='r',basedir=''):self.filename=filenameself.mode=modeifself.modein('w','a'):self.zfile=zipfile.ZipFile(filename,self.mode,compression=zipfile.ZIP_DEFLATED)else:self.zfile=zipfile.ZipFile(filename,self.mode)self.basedir=basedirifnotself.basedir:self.basedir=os.path.dirname(filename)defaddfile(self,path,arcname=None):path=path.replace('//','/')ifnotarcname:ifpath.startswith(self.basedir):arcname=path[len(self.basedir):]else:arcname=''self.zfile.write(path,arcname)defaddfiles(self,paths):forpathinpaths:ifisinstance(path,tuple):self.addfile(*path)else:self.addfile(path)defclose(self):self.zfile.close()defextract_to(self,path):forpinself.zfile.namelist():self.extract(p,path)defextract(self,filename,path):ifnotfilename.endswith('/'):f=os.path.join(path,filename)dir=os.path.dirname(f)ifnotos.path.exists(dir):os.makedirs(dir)file(f,'wb').write(self.zfile.read(filename))defcreate(zfile,files):z=ZFile(zfile,'w')z.addfiles(files)z.close()defextract(zfile,path):z=ZFile(zfile)z.extract_to(path)z.close()

⑺ Python如何将一个目录下所有文件夹里的.txt文件单独压缩

这个用得着python吗?shell就能做到了(cd some_path && find . -name *.txt | cpio -o -H newc > ../ pack)最多在python里用os.system调上面的命令。

⑻ python如何将整个文件夹压缩

代码如图:

⑼ Python 中怎样删除zip压缩文件夹中某个文件

用PyZipFile方法很简陋。是把zip压缩包里面的文件,除了要删除的文件以外,逐个读取出来,保版存到新文件中。最后权用新文件覆盖旧文件。1234567891011121314151617#coding=utf-8importzipfileimportyour_delet_file="你要删除的文件名"old_zipfile='archive.zip'#新文件new_zipfile='archve_new.zip'#新文件zin=zipfile.ZipFile(old_zipfile,'r')#读取对象zout=zipfile.ZipFile(new_zipfile,'w')#被写入对象foriteminzin.infolist():buffer=zin.read(item.filename)if(item.filename!=your_delet_file):#剔除要删除的文件zout.writestr(item,buffer)#把文件写入到新对象中zout.close()zin.close()#用新文件覆盖旧文件shutil.move(new_zipfile,old_zipfile)

未经允许不得转载:山九号 » python压缩文件夹|Python 中怎样删除zip压缩文件夹中某个文件

赞 (0)