首页 > 编程知识 正文

python批量解压文件,python解压之后直接就是文件

时间:2023-05-06 11:49:47 阅读:110293 作者:174

介绍python批量解压缩压缩文件的实例代码。 代码如下所示。

#/usr/pgddxmy/python # coding=utf-8 importos,sys

importzipfileopen _ path=' e :\ data ' save _ path=' e :\ data ' OS.chdir (open _ path ) ) )。

转到路径

#首先,打开zipfile模块中指定位置的zip文件

#传递的文件名列表、列表文件所在的路径以及存储路径defdecompression(files,file_path,save_path ) :

OS.getcwd(#当前路径OS.chdir ) ) file_path ) #将移动到路径

for file_name in files:

打印(file _ name )为

确定是否要解压缩r=zipfile.is_zipfile(file_name ) #文件

if r:

读取zpfd=zipfile.zipfile(file_name )压缩文件

导航到OS.chdir(save_path ) #存储路径

zpfd.extractall ()

zfd.close(deffiles_save ) open_path ) :

for file_path、sub_dirs、filesinOS.walk(open_path ) :#获取所有文件名和路径

print(file_path,sub_dirs,files ) )。

decompression(files,file_path,save _ path (files _ save ) open_path ) ) ) ) ) ) ) ) )

查看以下代码用python批量解压

#! /usr/pgddxmy/python

#-* -编码: utf-8-* -

“”createdonjun 6,2019

@author: carson

“”'

import os

导入re

导入压缩文件

导入字符串

#以下3行是为了解决编码问题

导入系统

读(sys ) )。

sys.setdefaultencoding(utf8 ) )。

file _ path=r '/users/qcq/downloads/bills '

file _ out=r '/users/qcq/downloads/qcq.txt '

正则表达式匹配三个项目:基本费用、信息费、长途费用。

pattern=re.compile(r'd.d ' ) )。

phone_number_line=1 #标记文件中的第一行是电话号码行

real_bill_line=7 #正文开始

“”'

1 .代码的第一部分首先重复给定的文件目录,获取要处理的zip文件,存储在一个列表中,为以后的文件处理服务。 这里主要使用os.walk重复目录,并使用os.path.join连接两个目录。

“”'

file_name_list=[]

for dirpath,dirnames,filenamesinOS.walk(file_path ) :

for file_name in filenames:

iffile_name.endswith(.zip ) ) :

TEMP_path=OS.path.join(Dirpath,file_name ) ) )。

file _ name _ list.append (temp _ path )

“”'

2 .对获得的上述文件进行了排序,使输出顺序整齐。

“”'

sorted(file_name_list ) )为

“”'

3 .正文部分

“”'

withopen(file_out,' w ' ) as f_out:

for zip _ file infile _ name _ list :

withzipfile.zipfile(zip_file ) as f:

data={}

fornameoffileunderzipinf.namelist () :

count=1

contents=stringio.stringio (f.read ) nameoffileunderzip ) )

sum_all=0.0

内容在线:

ifcountphone _ number _ lineandcountreal _ bill _ line 3360

count =1

continue

if phone _ number _ line==count :

phone_number=line.split(u ':' ) [1]

count =1

continue

sum_all=sum(map(float,pattern.findall ) line ) )

data [ phone _ number.strip (]=sum _ all

f_out.write(zip_file'n ' ) )。

for key,valueinsorted(data.items ),key=lambda d:d[0] ) :

f _ out.write (key ' : ' str (value ) (n ) )

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

#coding=utf-8

(甄码农python码

使用zipfile进行目录压缩、解压缩功能

import os,os.path

导入压缩文件

efzip_dir(dirname,zipfilename ) :

文件列表=[ ]

IFOS.Path.isfile(Dirname ) :

filelist.append(dirname )

else :

for root,dirs,filesinOS.walk,dirname,

for name in files:

filelist.append(OS.path.join ) root,name ) )

ZF=zipfile.zipfile(zipfilename,' w ',zipfile.zlib.DEFLATED ) ) )。

for tar in filelist:

ARCname=tar[Len(Dirname ) :]

#打印arc name

ZF.write(tar,arcname ) )。

zf.close () )

efunzip_file(zipfilename,unziptodir ) :

ifnotOS.path.exists(unziptodir ) : OS.mkdir (unzip todir,0777 ) )。

ZF obj=zipfile.zipfile (zip filename ) )。

for name in zfobj.namelist () :

name=name.replace('','/' ) )。

ifname.Endswith('/' ) :

OS.mkdir(OS.path.join ) unziptodir,name ) )

else:

ext _ filename=OS.path.join (unzip todir,name ) ) ) )。

ext _ dir=OS.path.dirname (ext _ filename ) )。

ifnotOS.path.exists(ext_dir ) : OS.mkdir (ext _ dir,0777 ) )。

outfile=open(ext_filename,' wb ' ) )。

outfile.write(ZFobj.read ) name ) )

outfile.close (

if __name__=='__main__':

zip _ dir (r ' e :/python/learning ',r ' e :/python/learning/zip.zip ' ) )

unzip _ file (r ' e :/python/learning/zip.zip ',r'E:/python/learning2' ) )

总结

以上是编辑介绍的python批量解压缩压缩文件的实例代码。 我希望对大家有帮助。 如果大家有什么疑问的话请发信息。 编辑马上给大家回信。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。