Python批量解压,python打开压缩文件
介绍大蟒批量解压缩压缩文件的实例代码。代码如下所示。
#/usr/pgddxmy/python # coding=utf-8 importos,sys
importzipfileopen _ path= e:\ \ data save _ path= e:\ \ data OS。chdir(open _ path))。
转到路径
#首先,打开压缩文件模块中指定位置的活力文件
#传递的文件名列表、列表文件所在的路径以及存储路径极好的解压缩(文件,文件路径,保存路径) :
OS.getcwd(#当前路径OS.chdir))文件路径)#将移动到路径
对于文件中的文件名:
打印(文件名)为
确定是否要解压缩r=zipfile.is_zipfile(文件名)#文件
如果r:
读取zpfd=zipfile.zipfile(文件名)压缩文件
导航到OS.chdir(保存路径)#存储路径
zpfd.extractall()
zfd。关闭(定义文件_保存)打开_路径):
对于file_path、sub_dirs、filesinOS.walk(open_path ) :#获取所有文件名和路径
打印(文件路径,子目录,文件).
解压(文件,文件路径,保存路径(文件保存)打开路径)))))))))
查看以下代码用大蟒批量解压
#!/usr/pgddxmy/python
#-* -编码:utf-8-* -
" "创建于2019年6月6日
@作者:卡森
""
导入操作系统
导入是
导入压缩文件
导入字符串
#以下3行是为了解决编码问题
导入系统
读(sys))。
sys.setdefaultencoding(utf8))。
file _ path=r /users/qcq/downloads/bills
file _ out=r /users/qcq/downloads/qcq。文本
正则表达式匹配三个项目:基本费用、信息费、长途费用。
pattern=re.compile(r\d\\d )。
电话号码线路=1 #标记文件中的第一行是电话号码行
real_bill_line=7 #正文开始
""
1 .代码的第一部分首先重复给定的文件目录,获取要处理的活力文件,存储在一个列表中,为以后的文件处理服务。这里主要使用os.walk重复目录,并使用os.path.join连接两个目录。
""
文件名列表=[]
对于目录路径、目录名、文件名、行走路径(文件路径) :
对于文件名中的文件名:
iffile_name.endswith(.zip)):
TEMP_path=OS.path.join(目录路径,文件名)).
文件名列表。追加(临时路径)
""
2 .对获得的上述文件进行了排序,使输出顺序整齐。
""
已排序(文件名列表) )为
""
3 .正文部分
""
withopen(file_out, w )作为f_out:
对于文件名列表中的活力文件:
以zipfile.zipfile(zip_file)为女:
数据={}
fornameoffileunderzipinf。名称列表():
计数=1
内容=stringio。stringio(f . read)nameoffileunderzip))
sum_all=0.0
内容在线:
if count phone _ number _ lineandcountreal _ bill _ line 3360
计数=1
继续
如果电话号码线路==计数:
电话号码=线路。split(u :)[1]
计数=1
继续
sum_all=sum(map(float,pattern.findall ) line))
数据[电话号码。strip(]=sum _ all
f_out.write(zip_file\n )。
对于key,valueinsorted(data.items),key=lambda d:d[0]):
f _ out。write(key : str(value)(\ n))
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#编码=utf-8
(甄码农大蟒码
使用压缩文件进行目录压缩、解压缩功能
导入os,os.path
导入压缩文件
efzip_dir(目录名,zip文件名) :
文件列表=[ ]
IFOS .Path.isfile(目录名) :
filelist.append(目录名)
否则:
对于root、dirs、filesinOS.walk、dirname、
对于文件中的名称:
文件列表。追加(操作系统。路径。join)root,name))
ZF=zipfile.zipfile(zipfilename, w ,zipfile.zlib.DEFLATED))。
对于文件列表中的焦油:
ARCname=tar[Len(Dirname ) :]
#打印弧名
ZF.write(tar,arcname))。
zf.close())
efunzip_file(zipfilename,unziptodir):
ifnotos。路径。exists(unziptodir):OS。mkdir(解压缩到dir,0777).
ZF obj=zipfile.zipfile (zip文件名)).
对于zfobj.namelist()中的名称:
name=name.replace(\ ,/)。
ifname .Endswith(/):
OS。mkdir(操作系统。路径。join)unziptodir,name))
否则:
ext _ filename=OS路径。join(解压到dir,name))。
ext _ dir=OS。路径。目录名(扩展名).
ifnotos。路径。exists(ext _ dir):OS。mkdir(分机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 ,rE:/python/learning2 ))
总结
以上是编辑介绍的大蟒批量解压缩压缩文件的实例代码。我希望对大家有帮助。如果大家有什么疑问的话请发信息。编辑马上给大家回信。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。