Python: How to unzip a file | Extract Single, multiple or all files from a ZIP archive

In this article we will discuss different ways to unzip or extract single, multiple or all files from zip archive to current or different directory.

Python の zipfile モジュールでは、ZipFile クラスは ZIP アーカイブからすべてのコンテンツを抽出するメンバ関数を提供しています。

  • pwd : zipファイルが暗号化されている場合、この引数にパスワードを渡す デフォルトは None.
  • Module required :

    from zipfile import ZipFile

    これを使用してzipファイルからすべての内容を抽出します

    Extract all files from a zip file to current directory

    Sample.zip ファイルがあったとします’sample’zip.set.zip.zip.zip.zip’ がカレントディレクトリにあるとします。
    これを解凍するには、まず zip ファイルを読み込みモードで開いて ZipFile オブジェクトを作り、そのオブジェクトに対して extractall() を呼びます。

    ZIP ファイルから別のディレクトリにすべてのファイルを取り出す

    ZIP ファイルから別のディレクトリにすべてのファイルを取り出すには、extractall() の引数に取り出し先のディレクトリを渡せばよい。

    # Create a ZipFile Object and load sample.zip in itwith ZipFile('sampleDir.zip', 'r') as zipObj: # Extract all the contents of zip file in different directory zipObj.extractall('temp')

    これは temp フォルダにある ‘sample.zip’ のすべてのファイルを取り出します。

    条件に基づいて大きな zip ファイルからいくつかのファイルを取り出す

    非常に大きな zip ファイルがあって、アーカイブ内の数千のファイルからいくつかのファイルを必要とすると仮定します。 大きな zip ファイルからすべてのファイルを解凍するには、数分かかることがあります。

    Python の zipfile モジュールでは、ZipFile クラスは ZIP ファイルから 1 つのファイルを抽出するメンバ関数を提供しています。 これは ZipFile.namelist()

  • path : zip ファイルが展開される必要がある場所、もし与えられなかった場合はカレントディレクトリに展開される。
  • 例えば、zipファイルからcsvファイルだけを取り出すのに使ってみましょう。

    # Create a ZipFile Object and load sample.zip in itwith ZipFile('sampleDir.zip', 'r') as zipObj: # Get a list of all archived file names from the zip listOfFileNames = zipObj.namelist() # Iterate over the file names for fileName in listOfFileNames: # Check filename endswith csv if fileName.endswith('.csv'): # Extract a single file from zip zipObj.extract(fileName, 'temp_csv')

    これは与えられたzipアーカイブからcsvファイルだけを取り出します。

    完全な例は次の通りです。

    コメントを残す

    メールアドレスが公開されることはありません。