ホームページ  >  記事  >  バックエンド開発  >  Python tempfileモジュール学習メモ(一時ファイル)

Python tempfileモジュール学習メモ(一時ファイル)

WBOY
WBOYオリジナル
2016-06-16 08:44:061058ブラウズ

tempfile.TemporaryFile

アプリケーションがデータを保存するために一時ファイルを必要とするが、それを他のプログラムと共有する必要がない場合は、TemporaryFile 関数を使用して一時ファイルを作成することが最良の選択です。このファイルはファイル システム テーブルを参照しないため、他のアプリケーションはこのファイルを見つけたり開くことができません。この機能で作成した一時ファイルは終了後に自動的に削除されます。

例 1:

コードをコピー コードは次のとおりです:

import os
import tempfile

print 'ファイル名を自分で作成する:'
filename = '/tmp/guess_my_name.%s.txt' % os.getpid()
temp = open(filename, 'w+b')
try:
print 'temp:', temp
print 'temp.name:', temp.name
finally:
temp.close()
os.remove(filename ) # 一時ファイルを自分でクリーンアップします

print
print 'TemporaryFile:'
temp = tempfile.TemporaryFile()
try:
print 'temp:', temp
print ' temp.name:', temp.name
finally:
temp.close() # ファイルを自動的にクリーンアップします

この例は、ファイルを作成する通常の方法と TemporaryFile() の違いを示しています。 注: TemporaryFile() で作成されたファイルにはファイル名がありません

出力:

コードをコピー コードは次のとおりです:

$ python tempfile_TemporaryFile.py


自分でファイル名を作成する:

temp: <ファイル '/tmp/guess_my_name.14932.txt'、モード 'w+b' 0x1004481e0 を開きます>

temp.name: /tmp/guess_my_name.14932.txt


一時ファイル:

temp: <ファイル ''、モード 'w+b' 0x1004486f0 を開きます>

temp.name:


ファイルはデフォルトで、どのプラットフォームでも w+b 権限で作成され、プログラムはそのファイルの読み取りと書き込みを行うことができます。この例は、ファイルを作成する通常の方法と TemporaryFile() の違いを示しています。 注: TemporaryFile() で作成されたファイルには、ファイル名

がありません。


コードをコピーします コードは次のとおりです:

$ python tempfile_TemporaryFile.py

自分でファイル名を作成する:

temp: <ファイル '/tmp/guess_my_name.14932.txt'、モード 'w+b' 0x1004481e0 を開きます>

temp.name: /tmp/guess_my_name.14932.txt

一時ファイル:

temp: <ファイル ''、モード 'w+b' 0x1004486f0 を開きます>

temp.name:

ファイルは、どのプラットフォームでもデフォルトで w+b 権限で作成され、プログラムはそのファイルの読み取りと書き込みを行うことができます。

例 2:

コードをコピー コードは次のとおりです:

import os
import tempfile

temp = tempfile.TemporaryFile()
try:
temp.write('何らかのデータ')
temp.seek(0)

print temp.read()
最後に :
temp.close()

書き込み後、後でデータを読み取るためにseek()を使用する必要があります。

出力:

コードをコピー コードは次のとおりです:

$ python tempfile_TemporaryFile_binary.py

一部のデータ


ファイルをテキスト モードで実行する場合は、ファイルの作成時にモードを「w+t」に変更します。

例 3:

コードをコピー コードは次のとおりです:

import tempfile

f = temporaryFile(mode='w+t')
try:
f.writelines(['firstn', 'secondn'])
f.seek(0)

f の行:
print line.rstrip() f. 🎜>
コードは次のとおりです:

$ python tempfile_T emporaryFile_text.py

まず
2 番目
tempfile.NamedTemporaryFile

一時ファイルが複数のプロセスまたはホストで使用される場合は、名前付きファイルを作成するのが最も簡単な方法です。これが NamedTemporaryFile の動作です。name 属性を使用してその名前にアクセスできます。


コードをコピーします。

コードは次のとおりです。


import os
import tempfile

temp = tempfile.NamedTemporaryFile()
try:
print 'temp:', temp
print 'temp.name: ', temp.name
finally:
# ファイルを自動的にクリーンアップします
temp.close()
print 'Close 後に存在します:', os.path.exists(temp.name)

ファイルには名前が付いていますが、閉じると自動的に削除されます

出力:

コードをコピー コードは次のとおりです:

$ python tempfile_NamedTemporaryFile.py

temp: <ファイル ''、モード 'w+b' 0x1004481e0 を開きます>

temp.name: /var/folders/9R/9R1t+tR02Raxzk+F71Q50U++Uw/-Tmp-/tmp0zHZvX

閉じた後に存在します: False

tempfile.mkdtemp

一時ディレクトリを作成します。特に言うことはありません。例を見てください:

コードをコピーします コードは次のとおりです:

import os
import tempfile

directory_name = tempfile.mkdtemp()
print directory_name
# ディレクトリを自分でクリーンアップします
os.removedirs(directory_name)

出力
コードをコピー コードは次のとおりです:

$ python tempfile_mkdtemp.py

/var/folders/9R/9R1t+tR02Raxzk+F71Q50U+++Uw/-Tmp-/tmpB1CR8M



注: ディレクトリは手動で削除する必要があります。

名前の予測

3 つのパラメータを使用してファイル名を制御します。名前の生成式は次のとおりです: dir + プレフィックス + ランダム + サフィックス

例:

コードをコピー コードは次のとおりです:

import tempfile

temp = tempfile.NamedTemporaryFile (suffix='_suffix',
)
try:
print 'temp:', temp
print ' temp.name:', temp.name
finally:
temp.close()


出力:

コードをコピーします コードは次のとおりです:$ python tempfile_NamedTemporaryFile_args.py

temp: <ファイル ''、モード 'w+b' 0x1004481e0 を開きます>


temp.name: /tmp/prefix_UyCzjc_suffix


tempfile.mkstemp([suffix=''[, prefix='tmp'[, dir=None[, text=False]]]])

mkstemp メソッドは一時ファイルの作成に使用されます。このメソッドは、一時ファイルを作成するためにのみ使用されます。tempfile.mkstemp 関数を呼び出した後、最初の要素は一時ファイルの操作のセキュリティ レベルを示し、2 番目の要素は一時ファイルのパスを示します。ファイル。パラメータの suffix と prefix は、それぞれ一時ファイル名の接尾辞と接頭辞を表します。 dir は、一時ファイルが存在するディレクトリを指定します。ディレクトリが指定されていない場合、一時ファイルはシステム環境変数 TMPDIR の設定に従って保存されます。 、TEMP または TMP。パラメータ text はファイルをテキスト形式で操作するかどうかを指定します。デフォルトは False で、ファイルがバイナリ形式で操作されることを意味します。

tempfile.mktemp([suffix=''[, prefix='tmp'[, dir=None]]])

mktemp は一時ファイルのパスを返すために使用されますが、一時ファイルは作成されません。

tempfile.tempdir

この属性は、作成された一時ファイル (フォルダー) が配置されるデフォルトのフォルダーを指定するために使用されます。この属性が設定されていないか、None に設定されている場合、Python は次の環境変数 TMPDIR、TEMP、TEMP で指定されたディレクトリに戻ります。これらの環境変数が定義されていない場合は、現在の作業ディレクトリに一時ファイルが作成されます。

tempfile.gettempdir()

Gettempdir() は、一時ファイルが保存されているフォルダーのパスを返すために使用されます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。