##tarファイル
###圧縮
tarファイル(英:tar file)とは
tarコマンドを使って作ったアーカイブファイル(1つにまとめたよファイル)
であり拡張子(ファイル名の最後に付く、ファイルの種類を表す目印)が「.tar」なファイル
Mac, Linuxで使われる圧縮方法の一つ
モードは"w:gz"とすることで、ひとまとめにして圧縮できる
qiita.py
import tarfile
with tarfile.open('test.tar.gz',"w:gz") as tr:
tr.add('test_dir')
実行すると、test.tar.gzが作成される
pythonの中で展開すると
qiita.py
with tarfile.open('test.tar.gz','r:gz') as tr:
tr.extractall(path='test_tar')
###読み込み
実行するとtest_tarが作成される
extractallを使って全て展開しなくても
extractfileを使ってファイルを指定すればそれだけ読み込める
qiita.py
with tarfile.open('test.tar.gz','r:gz') as tr:
# tr.extractall(path='test_tar')
with tr.extractfile('test_dir/sub_dir/sub_test.txt') as f:
print(f.read())
##zipファイル
###圧縮
z.writeではフォルダしか作らない為
さらに自分でテキストファイルを作る必要がある
qiita.py
import zipfile
with zipfile.ZipFile('test.zip',"w") as z:
z.write('test_dir')
z.write('test_dir/test.txt')
*だけだと同じディレクトリだけ
**とすると配下にある全てを見ていく
qiita.py
import zipfile
import zipfile
import glob
with zipfile.ZipFile('test.zip',"w") as z:
# z.write('test_dir')
# z.write('test_dir/test.txt')
for f in glob.glob('test_dir/**',recursive=True):
print(f)
z.write(f)
実行結果
test_dirの配下のファイルが出力される
test_dir/
test_dir/sub_dir
test_dir/sub_dir/subsub_dir
test_dir/sub_dir/subsub_dir/subsubu.txt
test_dir/sub_dir/sub_test.txt
test_dir/test.txt
###読み込み
全て読み込む
zzz2が作成されている
qiita.py
with zipfile.ZipFile('test.zip', 'r') as z:
z.extractall("zzz2")
指定して読み込み
qiita.py
with zipfile.ZipFile('test.zip', 'r') as z:
with z.open('test_dir/test.txt') as f:
print(f.read())