2023年 3月 19日

Python解压.gz,.zip文件

1.解压zip(函数形式)

  1. import zipfile
  2. import os
  3. def un_zip(csv_path):
  4.     for f in  os.listdir(csv_path):
  5.         if ".zip" in f:
  6.             zip_file = zipfile.ZipFile(csv_path + "\\" + f)
  7.             zip_file.extract(zip_file.namelist()[0],csv_path)

 

2.解压.gz(函数形式)

  1. def un_gzfile(gz_path):
  2.     # 异常处理
  3.     try:
  4.         # 压缩文件解压
  5.         for f in  os.listdir(gz_path):
  6.             if ".gz" in f:
  7.                 g = gzip.GzipFile(mode="rb", fileobj=open(gz_path+"\\"+f, 'rb'))
  8.                 open(gz_path+"\\"+f.replace(".gz",""), "wb").write(g.read())
  9.     except Exception as e:
  10.         print(e)
  11.     else:
  12.         print("文件解压成功!")

————————————————
版权声明:本文为CSDN博主「拼命_小李」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_43432638/article/details/108291875

3.压缩.gz

原文链接:Python进阶教程m17b–压缩解压–gzip – 桔子code

三种方式:

gzip.open(),其中的.png很重要,写明解压缩的文件的格式,我在研究核磁图像的时候,会需要将其写为.nii

  1. #juzicode.com / VX:桔子code
  2. import gzip
  3. # 创建GzipFile实例
  4. zf = gzip.open('logo.png.gz', mode = 'wb')
  5. print('type(zf):',type(zf))
  6. data = open('logo.png','rb').read() # 简化描述未关文件
  7. zf.write(data) # 写文件
  8. zf.close() # 关闭

gzip.GzipFile()

  1. #juzicode.com / VX:桔子code
  2. import gzip
  3. # 创建GzipFile实例
  4. zf = gzip.GzipFile('logo2.png.gz', mode = 'wb')
  5. print('type(zf):',type(zf))
  6. data = open('logo.png','rb').read() # 简化描述未关文件
  7. zf.write(data) # 写文件
  8. zf.close() # 关闭

gzip.comress()

  1. #juzicode.com / VX:桔子code
  2. import gzip
  3. pf = open('logo3.png.gz', 'wb') # open方法创建普通文件对象
  4. data = open('logo.png','rb').read() # 简化描述未关文件
  5. data_comp = gzip.compress(data) # 压缩数据
  6. pf.write(data_comp) # 写文件
  7. pf.close() # 关闭

4.解压缩.gz

  1. #juzicode.com / VX:桔子code
  2. import gzip
  3. zip_filename = 'logo.png.gz'
  4. with open('unzip\\logo1.png','wb') as pw:
  5. zf = gzip.open(zip_filename, mode = 'rb')
  6. pw.write(zf.read()) # 写文件
  7. zf.close()
  8. with open('unzip\\logo2.png','wb') as pw:
  9. zf = gzip.GzipFile(zip_filename, mode = 'rb')
  10. pw.write(zf.read()) # 写文件
  11. zf.close()
  12. with open(zip_filename, 'rb') as pr, open('unzip\\logo3.png','wb') as pw:
  13. pw.write(gzip.decompress(pr.read()) )
  14. with open('DWI1.nii','wb') as pw:
  15. zfile =gzip.open('M:\中日友好医院论文\Data\AD\Sub002\DWI\DWI.nii.gz','r')
  16. pw.write(zfile.read())
  17. zfile.close()

 解压缩时,对应open()中第一个参数将是文件的名字,叫啥都无所谓,gzip的内容打开的是.gz文件的具体内容,将其写入打开的文件pw,就是解压缩的过程。