python解凍圧縮パッケージの5つの方法を詳しく説明します。


ここではPythonを用いた解凍を以下の5つの圧縮ファイルのように検討します。
.gz.tar  .tgz.zip.rar
簡単な紹介
gz:gzipです。通常は一つのファイルだけを圧縮できます。タタと合わせれば、先に包装して圧縮することができます。
tar:linuxシステムの下の荷造り道具です。包装だけします。圧縮しない
tgz:つまり、tar.gzです。まずタタで包んで、gzで圧縮したファイルを使います。
zip:gzipとは違います。類似のアルゴリズムを使っても、複数のファイルを圧縮することができます。ファイルを個別に圧縮するだけです。圧縮率がtarを下回る。
rar:圧縮ファイルを包装します。最初はDOSとして使われていましたが、window OSに基づいています。
圧縮率はzipより高いですが、速度は遅いです。ランダムL問の速度も遅いです。
zipとrarの間の各種比について^^。表示:
http://www.comicer.com/stronghorse/water/software/ziprar.htm
gz
gzは普通一つのファイルだけを圧縮するので、全部他のパッケージと一緒に作業します。例えば、まずtarでXX.tarに包んで、圧縮してXX.tar.gzにすることができます。
gzを解凍すると、実際には単一のファイルを読み出し、Pythoonの方法は、例えば以下のようになります。

import gzip
import os
def un_gz(file_name):
 """ungz zip file"""
 f_name = file_name.replace(".gz", "")
 #       ,  
 g_file = gzip.GzipFile(file_name)
 #  gzip  
 open(f_name, "w+").write(g_file.read())
 #gzip   read()   ,  open()      。
 g_file.close()
 #  gzip  
タラ
XXXX.tar.gzを解凍した後、XXXX.tarを得て、さらに解凍します。
*注:tgzとtar.gzは同じフォーマットで、古いバージョンのDOS拡張子は最大3文字ですので、tgzで表します。
ここに複数のファイルがありますので、ファイル名を全部読みます。そしてストレスを解消します。例えば、以下のようなものがあります

import tarfile
def un_tar(file_name):
  untar zip file"""
 tar = tarfile.open(file_name)
 names = tar.getnames()
 if os.path.isdir(file_name + "_files"):
  pass
 else:
  os.mkdir(file_name + "_files")
 #          ,        
 for name in names:
  tar.extract(name, file_name + "_files/")
 tar.close()
*注:tgzファイルとtarファイルは同じ解凍方法です。
zip
タタと同様に、複数のファイル名を読み出して解凍する。例えば、以下のようなものがあります

import zipfile
def un_zip(file_name):
 """unzip zip file"""
 zip_file = zipfile.ZipFile(file_name)
 if os.path.isdir(file_name + "_files"):
  pass
 else:
  os.mkdir(file_name + "_files")
 for names in zip_file.namelist():
  zip_file.extract(names,file_name + "_files/")
 zip_file.close()
rar
rarは通常windowで使用されるため、追加のPythonパッケージrarfileが必要です。
利用可能な住所:http://sourceforge.net/projects/rarfile.berlios/files/rarfile-2.4.tar.gz/download
Pythonにフォルダをインストールする/Scrippts/フォルダを展開し、現在のフォームでコマンドラインを開きます。
入力Python setup.py installインストールが完了しました。

import rarfile
import os
def un_rar(file_name):
 """unrar zip file"""
 rar = rarfile.RarFile(file_name)
 if os.path.isdir(file_name + "_files"):
  pass
 else:
  os.mkdir(file_name + "_files")
 os.chdir(file_name + "_files"):
 rar.extractall()
 rar.close()
タタリ包装
パッケージコードを書く過程で、tar.add()を使ってファイルを追加すると、ファイル自体のパスも追加されます。arcnameを加えると、自分の名前のルールに従ってファイルをtarパケットに追加することができます。
パッケージコード:

#!/usr/bin/env /usr/local/bin/python 
 # encoding: utf-8 
 import tarfile 
 import os 
 import time 
 
 start = time.time() 
 tar=tarfile.open('/path/to/your.tar,'w') 
 for root,dir,files in os.walk('/path/to/dir/'): 
   for file in files: 
     fullpath=os.path.join(root,file) 
     tar.add(fullpath,arcname=file) 
 tar.close() 
 print time.time()-start 
包装の過程で、gz圧縮の形式で包装したいなら、圧縮規則を設定することができます。tar=tarfile.open('/path/to/your.tar.gz','w:gz')他のフォーマットは、例えば以下の表です。
tafile.openのmodeは非常に多様です。
mode action
タタが解凍する
タタ解凍は、圧縮フォーマットによっても解凍することができる。

 #!/usr/bin/env /usr/local/bin/python 
 # encoding: utf-8 
 import tarfile 
 import time 
 
 start = time.time() 
 t = tarfile.open("/path/to/your.tar", "r:") 
 t.extractall(path = '/path/to/extractdir/') 
 t.close() 
 print time.time()-start 
上のコードは全部解凍されています。順番に違う処理をすることもできますが、もしタタのカバンの中のファイルが多すぎると、メモリに気をつけてください。 

 tar = tarfile.open(filename, 'r:gz') 
 for tar_info in tar: 
  file = tar.extractfile(tar_info) 
  do_something_with(file) 
ps:pythonはrarファイルの解凍を実現します。
1.pip 3 install rarfile  rarfileライブラリをインストールする
(ストレス解消、圧縮という方法はサポートされていませんので注意してください。)

#coding=utf-8
import rarfile
path = "E:\\New\\New.rar"
path2 = "E:\\New"
rf = rarfile.RarFile(path)     #     
rf.extractall(path2)        #         
締め括りをつける
以上は小编が皆さんに绍介したpython圧縮袋を解凍する5つの方法です。皆さんに何かお聞きしたいことがあれば、メッセージをください。小编はすぐにご返事します。ここでも私たちのサイトを応援してくれてありがとうございます。
本文があなたのためになると思ったら、転載を歓迎します。出所を明記してください。ありがとうございます。