Python 例を含むZIPファイル

⚡ スマートサマリー

Python 組み込みの shutil および zipfile モジュールを使用して ZIP アーカイブを作成します。ここでは、make_archive() を使用してディレクトリ全体を zip 化する方法、ZipFile を使用して特定のファイルを zip 化する方法、およびtracアーカイブの内容を閲覧、一覧表示、および読み込む。

  • 🗜️ make_archive(): shutil.make_archive() は、ディレクトリ全体を .zip ファイルに圧縮します。
  • 📄 ZipFile.write(): ZipFile.write() は、特定のファイルをアーカイブに一つずつ追加します。
  • 📂 extrac高い(): Zipファイル.extractall() は、アーカイブ内のすべてのファイルをフォルダに解凍します。
  • ???? 名前リスト(): ZipFile.namelist() は、ZIP アーカイブ内のファイル名を一覧表示します。
  • 🤖 AIによる支援: CopilotのようなAIツールは、ZIPコードと解凍コードを瞬時に生成します。

Python ZIPファイル

Python zip/tar アーカイブを素早く作成できます。

次のコマンドはディレクトリ全体を圧縮します

shutil.make_archive(output_filename, 'zip', dir_name)

次のコマンドはアーカイブしたいファイルを制御します

ZipFile.write(filename)

ディレクトリ全体を圧縮する方法 Python

Zipファイルを作成する手順は次のとおりです。 Python

ステップ1) アーカイブファイルを作成するには Pythonインポート文が正しく、順序どおりに記述されていることを確認してください。ここではアーカイブのインポート文は from shutil import make_archive

Python ZIPファイル

Code 説明

  • モジュール shutil から make_archive クラスをインポートします。
  • Split関数を使用して、テキストファイルの場所へのパスからディレクトリとファイル名を分割します(guru99)
  • 次に、モジュール「shutil.make_archive(“guru99 archive, “zip”, root_dir)」を呼び出して、zip形式のアーカイブファイルを作成します。
  • その後、圧縮したいもののルート ディレクトリを渡します。 したがって、ディレクトリ内のすべてが圧縮されます
  • コードを実行すると、パネルの右側にアーカイブ zip ファイルが作成されていることがわかります。

ステップ2) アーカイブファイルが作成されたら、ファイルを右クリックしてOSを選択すると、以下のようにアーカイブファイルが表示されます。

Python ZIPファイル

これで、archive.zip ファイルが OS 上に表示されます (Windows エクスプローラ)

Python ZIPファイル

ステップ3) ファイルをダブルクリックすると、そこに含まれるすべてのファイルのリストが表示されます。

Python ZIPファイル

ZipFileを使用して特定のファイルを圧縮する方法

ステップ4) In Python アーカイブに含める特定のファイルを定義できるため、アーカイブをより細かく制御できます。この場合、アーカイブに2つのファイルを含めます。 「ぐる99.txt」 (NAIST) と 「guru99.txt.bak」。

Python ZIPファイル

Code 説明

  • zipファイルからZipfileクラスをインポートする Python モジュール。このモジュールは、zipファイルの作成を完全に制御します
  • (「testguru99.zip, “w”) という名前の新しい Zip ファイルを作成します」
  • 新しい Zipfile クラスを作成するには、ファイルであるため権限を渡す必要があるため、情報を newzip としてファイルに書き込む必要があります。
  • 変数「newzip」を使用して、作成した zip ファイルを参照しました
  • 「newzip」変数の書き込み関数を使用して、「guru99.txt」と「guru99.txt.bak」ファイルをアーカイブに追加します。

コードを実行すると、パネルの右側に「guru99.zip」という名前のファイルが作成されることがわかります。

お願い: ここでは、「with」スコープ ロックを使用しているため、「newzip.close」のようなファイルを「閉じる」コマンドは与えていません。そのため、プログラムがこのスコープの外にある場合、ファイルはクリーンアップされて自動的に閉じられます。

ステップ5) ときにあなたを -> ファイル (testguru99.zip) を右クリックし、 -> OS を選択します (Windows エクスプローラ)すると、以下のようにフォルダー内のアーカイブ ファイルが表示されます。

Python ZIPファイル

ファイル「testguru99.zip」をダブルクリックすると、別のウィンドウが開き、そこに含まれるファイルが表示されます。

Python ZIPファイル

完全 Python Code ZIPファイルを作成する

これが完全なコードです

Python 2例

import os
import shutil
from zipfile import ZipFile
from os import path
from shutil import make_archive

def main():
# Check if file exists
	if path.exists("guru99.txt"):
# get the path to the file in the current directory
	src = path.realpath("guru99.txt");
# rename the original file
	os.rename("career.guru99.txt","guru99.txt")
# now put things into a ZIP archive
	root_dir,tail = path.split(src)
    shutil.make_archive("guru99 archive", "zip", root_dir)
# more fine-grained control over ZIP files
	with ZipFile("testguru99.zip","w") as newzip:
	newzip.write("guru99.txt")
	    newzip.write("guru99.txt.bak")
if __name__== "__main__":
	  main()

Python 3例

import os
import shutil
from zipfile import ZipFile
from os import path
from shutil import make_archive

    # Check if file exists
       if path.exists("guru99.txt"):
    # get the path to the file in the current directory
        src = path.realpath("guru99.txt");
    # rename the original file
        os.rename("career.guru99.txt","guru99.txt")
    # now put things into a ZIP archive
        root_dir,tail = path.split(src)
        shutil.make_archive("guru99 archive","zip",root_dir)
    # more fine-grained control over ZIP files
        with ZipFile("testguru99.zip", "w") as newzip:
            newzip.write("guru99.txt")
            newzip.write("guru99.txt.bak")

方法tract ZIPファイルを解凍します Python

アーカイブを解凍するには、ZipFile で読み取りモードで開き、ex を呼び出します。tractall() から ex へtracすべてのファイル、またはtract() は単一のメンバーを取り出すためのものです。

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    myzip.extractall("extracted_files")

extractall() メソッドは、引数として渡されたフォルダにアーカイブされたすべてのファイルを書き込みます。

ZIPファイル内のファイルを一覧表示する方法 Archive

外部の要因なしにアーカイブを検査できますtracting it。namelist() メソッドは、ZIP 内に格納されているすべてのファイルの名前を返します。

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    print(myzip.namelist())

これは、アーカイブに含まれるファイル名の一覧を表示します。

ZIPファイル内のファイルを読み込む方法 Archive

解凍せずにアーカイブから直接メンバーファイルを読み取ることができますping ZipFileのopen()メソッドを使用してディスクに書き込む。

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    with myzip.open("guru99.txt") as f:
        print(f.read())

これは、大きなアーカイブの中から特定のファイルの内容だけが必要な場合に便利です。

よくあるご質問

ディレクトリを圧縮するには、shutil.make_archive(name, 'zip', root_dir) を使用するか、書き込みモードで ZipFile を開き、write() を呼び出して特定のファイルをアーカイブに追加します。

shutil.make_archive() はディレクトリ全体を 1 つの呼び出しで圧縮しますが、zipfile.ZipFile はより細かい制御が可能で、ファイルの追加、読み取り、または削除ができます。tracアーカイブ内の個々のファイル。

ZipFile('file.zip', 'r')でアーカイブを開き、exを呼び出します。tractall('folder') を ex にtracすべて、またはtract('name') は、アーカイブから単一のファイルを取り出すためのものです。

ZipFileを読み取りモードで開き、namelist()を呼び出します。これは、アーカイブに格納されているすべてのファイル名のリストを返します。tracそれらのどれかに手を出している。

with ステートメントは、エラーが発生した場合でも、ブロックが終了すると自動的にアーカイブを閉じるため、close() を手動で呼び出す必要はありません。

GitHub CopilotのようなAIアシスタントは、ZipFileやmake_archive()の呼び出しを自動補完し、平易な言葉による説明から多数のファイルを圧縮または解凍するループを生成します。

はい。AI搭載ツールを使えば、バックアップやアーカイブのスクリプト作成を自動化したり、shutilとzipfileのどちらかを選択したり、ファイルが見つからない場合やアーカイブが破損した場合のエラー処理を追加したりできます。

はい。ZipFileを開き、メンバーファイルに対してopen()メソッドを使用して、その内容を直接読み取ります。tracアーカイブ全体をディスクに保存します。