1. ホーム
  2. スクリプト・コラム
  3. パイソン

Python は tempfile パッケージを使用してコードを簡単にトレースなしで実行します。

2022-01-27 23:41:50

I. はじめに

Pythonで一時ファイルやフォルダーを使うための入門編です。

tempfile パッケージを使用します。

pip install tempfile


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

II. テンポラリーフォルダ

2.1 一時フォルダの取得

# Get the temporary folder
tmpdir = tempfile.gettempdir()
print(tmpdir) #/tmp


2.2 一時フォルダの生成

# Way 1: Generate the default temporary folder
tmpdir = tempfile.mkdtemp()
print(tmpdir) #/tmp/tmpui77cgud

# way two: generate custom temporary folder (specify prefix, suffix, directory, you can specify part of it), suffix: suffix, prefix: prefix, dir: directory

tmpdir = tempfile.mkdtemp(suffix='_txt', prefix='tp_dir_', dir='/home/tmp/py_rs_file')

print(tmpdir) # /home/tmp/py_rs_file/tp_dir_06l_o2dm_txt



iii. 一時ファイル

3.1 自動的には削除されない一時ファイルを生成する(終了時)

# Way 1: Generate the default temporary file, which is a binary file by default

tmpfile = tempfile.mkstemp()[1]
print(tempfile) #/tmp/tmp75kazf_8
# Data write
with open(tmpfile, 'w+') as t_f:
    t_f.writelines('hello world')

# way two: generate custom temporary file (specify prefix, suffix, directory, file type parameters, you can specify some of them),suffix: suffix, prefix: prefix, dir: directory, text: file type, True for text, false for binary

tmpfile = tempfile.mkstemp(suffix='.txt', prefix='tp_', dir='/home/tmp/py_rs_file', text=True)[1]
print(tempfile) # /home/tmp/py_rs_file/tp_pn2973g0.txt

# Data write
with open(tmpfile, 'w+') as t_f:
    t_f.writelines('hello world')


3.2 自動削除される一時ファイルを生成する

# Way 1: Create a temporary file that is automatically deleted when the file is closed
tmpfile = tempfile.TemporaryFile(mode='w+t')
tmpfile.write('hello world') ## data write
tmpfile.seek(0)
tmpTxt = tmpfile.read() ## read data
print(tmpTxt)
tmpfile.close() #File is automatically deleted when closed

# way 2: create a temporary file, the file is closed according to the delete parameter to determine whether to automatically delete, True: delete False: do not delete
with tempfile.NamedTemporaryFile(delete=False) as tmpfile:
    file_name = tmpfile.name
    print(file_name) #/tmp/tmp73zl8gmn
    tmpfile.write('hello world'.encode())
    tmpfile.seek(0)
    tmpTxt = tmpfile.read().decode()
    print(tmpTxt)

# way three: create a custom temporary file, the file can be closed according to the delete parameter to determine whether to automatically delete, True: delete False: do not delete
# other configuration parameters are, mode: file mode (w + b for binary mode (default), w + t for text mode), suffix: suffix, prefix: prefix, dir: directory
with tempfile.NamedTemporaryFile(mode='w+t', suffix='.txt', prefix='tp_', dir='/home/tmp/py_rs_file',delete=False) as tmpfile:
    file_name = tmpfile.name
    print(file_name) #/home/tmp/py_rs_file/tp_fcwpmh3l.txt
    tmpfile.write('hello world')
    tmpfile.seek(0)
    tmpTxt = tmpfile.read()
    print(tmpTxt)



コンテキストに応じて、一時的なリソースはインメモリまたはデータベースストレージから直接呼び出すことができます。

テクニカルコミュニケーション

転載、ブックマーク、応援など、ご自由にどうぞ。

Pythonでtempfileパッケージを使用して、コードを簡単に、痕跡を残さずに実行する方法についてのこの記事は以上となります。Python tempfile パッケージについてのより詳しい情報は、Script House の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。