tempfile モジュールは、一時ファイルと一時ディレクトリを作成するように特別に設計されており、UNIX プラットフォームと Windows プラットフォームの両方で適切に動作します。
tempfile モジュールにはよく使用される関数が多数用意されていますので、以下でこれらの関数を詳しく紹介します。
tempfile.TemporaryFile(mode='w b'、buffering=None、encoding=None、newline=None、suffix=None、prefix=None、dir=None) :一時ファイルを作成します。この関数はファイルのようなオブジェクトを返します。つまり、ファイル I/O をサポートします。
tempfile.NamedTemporaryFile(mode='w b',buffering=None,encoding=None,newline=None,suffix=None,prefix=None,dir=None,delete=True): 一時ファイルを作成します。この関数は、生成する一時ファイルがファイル システム内にファイル名を持つことを除いて、前の関数とほぼ同じことを行います。
関連する推奨事項: 「Python ビデオ チュートリアル 」
tempfile.SpooledTemporaryFile(max_size=0、mode='w b'、buffering=None、encoding=None、newline) =なし、サフィックス=なし、プレフィックス=なし、dir=なし): 一時ファイルを作成します。 TemporaryFile 関数と比較すると、プログラムが一時ファイルにデータを出力する場合、データはまずメモリに出力され、max_size を超えるまで実際には物理ディスクに出力されません。
tempfile.TemporaryDirectory(suffix=None、prefix=None、dir=None): 一時ディレクトリを生成します。
tempfile.gettempdir(): システムの一時ディレクトリを取得します。
tempfile.gettempdirb(): gettempdir() と同じですが、この関数はバイト文字列を返す点が異なります。
tempfile.gettempprefix(): 一時ファイルの生成に使用されるプレフィックスを返します。
tempfile.gettempprefixb(): gettempprefix() と同じですが、この関数はバイト文字列を返す点が異なります。
tempfile モジュールには、tempfile.mkstemp() と tempfile.mkdtemp() という 2 つの低レベル関数も提供されます。一時ファイルと一時ディレクトリを作成するために上で紹介した 4 つの関数はすべて高レベル関数です。高レベル関数は自動クリーニングをサポートしており、with ステートメントで使用できますが、これら 2 つの低レベル関数はサポートしていません。通常は、高レベル関数を使用して一時ファイルと一時ディレクトリを作成することをお勧めします。
さらに、tempfile モジュールは tempfile.tempdir 属性も提供しており、この属性に値を割り当てることでシステムの一時ディレクトリを変更できます。
次のプログラムは、一時ファイルと一時ディレクトリの使用方法を示しています。
import tempfile # 创建临时文件 fp = tempfile.TemporaryFile() print(fp.name) fp.write('两情若是久长时,'.encode('utf-8')) fp.write('又岂在朝朝暮暮。'.encode('utf-8')) # 将文件指针移到开始处,准备读取文件 fp.seek(0) print(fp.read().decode('utf-8')) # 输出刚才写入的内容 # 关闭文件,该文件将会被自动删除 fp.close() # 通过with语句创建临时文件,with会自动关闭临时文件 with tempfile.TemporaryFile() as fp: # 写入内容 fp.write(b'I Love Python!') # 将文件指针移到开始处,准备读取文件 fp.seek(0) # 读取文件内容 print(fp.read()) # b'I Love Python!' # 通过with语句创建临时目录 with tempfile.TemporaryDirectory() as tmpdirname: print('创建临时目录', tmpdirname)
上記のプログラムは、2 つの方法で一時ファイルを作成します。 1 つ目の方法は、一時ファイルを手動で作成することです。一時ファイルの読み取りと書き込みが完了したら、それをアクティブに閉じる必要があります。プログラムが一時ファイルを閉じると、ファイルは自動的に削除されます。
2 番目の方法は、with ステートメントを使用して一時ファイルを作成し、with ステートメントによって一時ファイルが自動的に閉じられるようにする方法です。 上記のプログラムは最後に一時ディレクトリも作成します。プログラムは with ステートメントを使用して一時ディレクトリを管理するため、一時ディレクトリも自動的に削除されます。 上記のプログラムを実行すると、次の出力が表示されます。C:\Users\admin\AppData\Local\Temp\tmphvehw9z1 两情若是久长时,又岂在朝朝暮暮。 b'I Love Python!' 创建临时目录C:\Users\admin\AppData\Local\Temp\tmp3sjbnwob
以上がPythontempとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。