Python

【Python】第6章第12回:圧縮ファイル(zip, tar)の操作方法

本記事では、Pythonを使用して圧縮ファイル(zip形式やtar形式)の操作方法を解説します。ファイルの圧縮や解凍、内容の確認方法を学びましょう。

0. 記事の概要

この記事を読むメリット

  • 圧縮ファイル操作の基礎を理解:Pythonでzipやtarファイルを扱う方法を学べます。
  • 実践的なスキルの習得:日常業務やプロジェクトで圧縮ファイルを効率的に操作できます。
  • エラー対策の能力向上:圧縮ファイル操作中のよくある問題を解決できるスキルを取得できます。

この記事で学べること

  • 圧縮ファイルの基礎知識
  • Pythonでのzipファイルやtarファイルの操作方法
  • 実用的な応用例とエラー処理

1. 圧縮ファイルの基礎

1.1 圧縮ファイルとは?

圧縮ファイルは、複数のファイルやディレクトリを一つのファイルにまとめ、サイズを小さくしたものです。主な形式として以下が挙げられます。

  • zip形式:一般的で広く利用されている圧縮形式。
  • tar形式:LinuxやUnix系のシステムでよく使用される形式。

1.2 圧縮ファイルの用途

  • ファイルのバックアップ
  • 複数ファイルの効率的な共有
  • ストレージの節約

2. Pythonでzipファイルを操作する方法

2.1 zipファイルの作成

# zipファイルを作成する
import zipfile

with zipfile.ZipFile("example.zip", "w") as zipf:
    zipf.write("file1.txt")
    zipf.write("file2.txt")
print("zipファイルが作成されました")

2.2 zipファイルの解凍

# zipファイルを解凍する
with zipfile.ZipFile("example.zip", "r") as zipf:
    zipf.extractall("output_directory")
print("zipファイルが解凍されました")
動作解説
  1. ZipFile()を使用してzipファイルを作成・解凍します。
  2. 圧縮時にはwrite()メソッドを使用し、解凍時にはextractall()メソッドを使用します。
  3. 作成したzipファイルには指定したファイルが含まれます。

3. Pythonでtarファイルを操作する方法

3.1 tarファイルの作成

# tarファイルを作成する
import tarfile

with tarfile.open("example.tar", "w") as tarf:
    tarf.add("file1.txt")
    tarf.add("file2.txt")
print("tarファイルが作成されました")

3.2 tarファイルの解凍

# tarファイルを解凍する
with tarfile.open("example.tar", "r") as tarf:
    tarf.extractall("output_directory")
print("tarファイルが解凍されました")
動作解説
  1. tarfile.open()を使用してtarファイルを作成・解凍します。
  2. ファイルを追加するにはadd()メソッドを使用し、解凍にはextractall()メソッドを使用します。

4. 練習問題

以下の課題に挑戦してみましょう。

  1. 任意のファイルを含むzipファイルを作成してください。
  2. 作成したzipファイルを解凍し、内容を確認してください。
  3. tarファイルを作成し、解凍するプログラムを書いてください。

5. 練習問題の解答と解説

問1〜3の解答例

# 問1: zipファイルの作成
with zipfile.ZipFile("my_files.zip", "w") as zipf:
    zipf.write("example1.txt")
    zipf.write("example2.txt")

# 問2: zipファイルの解凍
with zipfile.ZipFile("my_files.zip", "r") as zipf:
    zipf.extractall("output_dir")

# 問3: tarファイルの作成と解凍
with tarfile.open("my_files.tar", "w") as tarf:
    tarf.add("example1.txt")
    tarf.add("example2.txt")

with tarfile.open("my_files.tar", "r") as tarf:
    tarf.extractall("output_dir")

6. まとめ

本記事では、Pythonでのzipやtar形式の圧縮ファイルの操作方法を学びました。効率的にファイルを圧縮・解凍し、日常業務やプロジェクトに活用してください。