一時ファイル・ディレクトリ

投稿者: | 2022-10-22

目次

一時ファイルを活用する

https://docs.python.org/ja/3/library/tempfile.html

  • tempfileをimportすると、そのTemporaryFile関数を使うと、I/Oバッファの上に一時ファイルを作成してくれる
  • 実際にファイルを作成することなくファイルを扱うことが出来る
import tempfile

with tempfile.TemporaryFile(mode='w+') as t:
    t.write('Hello')
    t.seek(0)
    print(t.read())

# Hello
  • I/Oバッファ上に作成するのではなく、実際に一時ファイルを作成して残したい場合は
  • NamedTemoraryFile関数を使い、引数でdelete=Falseを指定する(=削除しない)
import tempfile

with tempfile.NamedTemporaryFile(delete=False) as t:
    print(t.name)
    with open(t.name, 'w+') as f:
        f.write('TEST\n')
        f.seek(0)
        print(f.read())

# /var/folders/kz/1cvr2vx16579p2hh_gmvybs40000gn/T/tmpjkdl0q22
# TEST

一時ディレクトリの作成

  • ファイルだけでなく、一時的なディレクトリを作成することが可能
  • これを使うとディレクトリの中でファイルを作成し圧縮するなどといった活用ができる
import tempfile

# ①
with tempfile.TemporaryDirectory() as td:
    print(td)
    
# ②
temp_dir = tempfile.mkdtemp()
print(temp_dir)

/var/folders/kz/1cvr2vx16579p2hh_gmvybs40000gn/T/tmp8fcss9w3
/var/folders/kz/1cvr2vx16579p2hh_gmvybs40000gn/T/tmp29c8kdrt

ディレクトリの存在を確認する

  • macはls、winはdir
  • lsの場合は、-alオプションで名前にドットがついた隠しディレクトリや詳細を確認することが出来る