Pythonでtarファイル(tar.gzアーカイブ)を作成する方法
Pythonでは、標準ライブラリの tarfile モジュールを使うことで、ディレクトリを圧縮したtarアーカイブを簡単に作成できます。さらに os.walk を組み合わせれば、ディレクトリツリー内のすべてのファイルを再帰的に辿り、アーカイブへ追加することが可能です。
基本的な手順
tarfile.open() でアーカイブファイルを開き、モードに "w:gz" を指定すると、gzip圧縮された .tar.gz 形式のアーカイブを作成できます。あとは add() メソッドでファイルを1つずつ追加していくだけです。
サンプルコード
import os
import tarfile
def tardir(path, tar_name):
with tarfile.open(tar_name, "w:gz") as tar_handle:
for root, dirs, files in os.walk(path):
for file in files:
tar_handle.add(os.path.join(root, file))
tardir('./my_folder', 'sample.tar.gz')
コードの解説
このコードを実行すると、my_folder ディレクトリ内のすべてのファイルが圧縮され、カレントディレクトリに sample.tar.gz という名前で保存されます。
- tarfile.open(tar_name, "w:gz"): 書き込みモード+gzip圧縮でアーカイブを開きます。with文を使っているため、処理終了後に自動的にクローズされます。
- os.walk(path): 指定したパス以下のサブディレクトリとファイルを再帰的に走査します。
- tar_handle.add(os.path.join(root, file)): 見つかった各ファイルのフルパスを組み立てて、アーカイブに追加します。
なお、元のコード例の末尾にある tar.close() は不要です。with文を使用している場合、ブロックを抜けた時点で自動的にアーカイブは閉じられるためです。逆にwith文を使わない場合は、明示的に close() を呼び出す必要があります。
圧縮なしの .tar ファイルを作成したい場合は、モードを "w" に変更してください。また、bzip2圧縮を使いたい場合は "w:bz2" を指定できます。
-
PythonでPowerPointファイルを自動作成する方法!python-pptxの基本を徹底解説
はじめに誰もが一度はPowerPointのプレゼンテーション資料を作成した経験があるのではないでしょうか。多くの場合、Microsoft PowerPointやGoogleスライドといったGUIツールを使うことが多いでしょう。しかし、ライセンスを持っていなかったり、インターネット環境にアクセスできなかったりすることもあります。あるいは、「プログラマーらしく」コードで自動生成したいと考える方もいるはずです。ご安心ください。そんなときこそPythonの出番です!この記事では、Pythonを使ってPowerPointファイルを作成し、コンテンツを追加する方法を解説します。それでは早速始めましょう!準
-
Pythonでファイルの名前を変更する方法【os.renameとshutil.moveの使い方】
Pythonでファイル名を変更する基本の方法Pythonでファイルの名前を変更するには、標準ライブラリの os モジュールにある rename() メソッドを使うのが最も一般的な方法です。例えば、カレントディレクトリに a.txt というファイルがあり、これを b.txt にリネームしたい場合は、次のように記述します。os.rename() を使った例>>> import os>>> os.rename(a.txt, b.txt)このコードを実行すると、a.txt のファイル名が b.txt に変更されます。非常にシンプルで、単純なリネーム処理には最適です。