例を含む Python ZIP ファイル
Python を使用すると、zip/tar アーカイブをすばやく作成できます。
次のコマンドは、ディレクトリ全体を圧縮します
shutil.make_archive(output_filename, 'zip', dir_name)
次のコマンドで、アーカイブするファイルを制御できます
ZipFile.write(filename)
Python で Zip ファイルを作成する手順は次のとおりです
ステップ 1) Python からアーカイブ ファイルを作成するには、インポート ステートメントが正しく、適切であることを確認してください。ここで、アーカイブのインポート ステートメントは from shutil import make_archive
です。
コードの説明
- モジュール shutil から make_archive クラスをインポート
- 分割機能を使用して、パスからテキスト ファイル (guru99) の場所までのディレクトリとファイル名を分割します
- 次に、モジュール「shutil.make_archive(“guru99 archive, “zip”, root_dir)」を呼び出して、zip 形式のアーカイブ ファイルを作成します
- その後、圧縮したいもののルート ディレクトリを渡します。したがって、ディレクトリ内のすべてが圧縮されます
- コードを実行すると、パネルの右側にアーカイブ zip ファイルが作成されていることがわかります。
ステップ 2) アーカイブ ファイルが作成されたら、ファイルを右クリックして O.S を選択すると、以下に示すようにアーカイブ ファイルが表示されます。
これで、archive.zip ファイルが OS (Windows Explorer) に表示されます
ステップ 3) ファイルをダブルクリックすると、そこにあるすべてのファイルのリストが表示されます。
ステップ 4) Python では、アーカイブに含める特定のファイルを定義できるため、アーカイブをより細かく制御できます。この場合、アーカイブ “guru99.txt” の下に 2 つのファイルを含めます。 および 「guru99.txt.bak」。
コードの説明
- zip ファイルの Python モジュールから Zipfile クラスをインポートします。このモジュールは、zip ファイルの作成を完全に制御します
- 名前 (「testguru99.zip、「w」) で新しい Zipfile を作成します
- 新しい Zipfile クラスを作成するには、ファイルであるため許可を渡す必要があるため、情報を newzip としてファイルに書き込む必要があります
- 変数「newzip」を使用して、作成した zip ファイルを参照しました
- 「newzip」変数の書き込み機能を使用して、ファイル「guru99.txt」と「guru99.txt.bak」をアーカイブに追加します
コードを実行すると、パネルの右側に「guru99.zip」という名前のファイルが作成されていることがわかります
注意 :ここでは、"With" スコープ ロックを使用するため、"newzip.close" のようなファイルを "閉じる" コマンドは指定しません。そのため、プログラムがこのスコープの外にある場合、ファイルはクリーンアップされ、自動的に閉じられます。
ステップ 5) -> ファイル (testguru99.zip) を右クリックし、-> OS (Windows Explorer) を選択 、以下に示すように、フォルダ内のアーカイブ ファイルが表示されます。
ファイル「testguru99.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")
まとめ
- ディレクトリ全体を圧縮するには、コマンド「shutil.make_archive(“name”,”zip”, root_dir)」を使用します
- 圧縮するファイルを選択するには、コマンド「ZipFile.write(filename)」を使用します
Python