web-dev-qa-db-ja.com

一時ファイルのパスをPython 3で取得することは可能ですか?

Tempfileライブラリを使用して作成された一時ファイルのファイルパスを取得することが可能かどうか疑問に思っていました。基本的に、私はいくつかのデータを取り込み、そのデータに基づいて一時的なcsvファイルを生成する関数を作成しようとしています。この一時ファイルのパスを取得する方法があるかどうか疑問に思っていましたか?

8
Keyadun

使用する tempfile.NamedTemporaryFileは、名前を付けて一時ファイルを作成し、.nameオブジェクトの属性。

この名前の使用方法にはプラットフォーム固有の制限があることに注意してください。 documentation はこう言っています:

名前を使用してファイルを再度開くことができるかどうか、名前付きの一時ファイルがまだ開いているかどうかは、プラットフォームによって異なります(Unixではこのように使用できますが、Windows NT以降では使用できません)。

7
Barmar

tempfile.NamedTemporaryFileには、必要な.dirプロパティがあります。


編集:いいえ、それは.name、@ Barmarではありませんが、tempfileのソースコードを調べても、.dirプロパティはありません。ただし、次のようにcan.nameプロパティをos.pathdirnameメソッドと組み合わせて使用​​します。

with tempfile.NamedTemporaryFile(suffix='.csv', prefix=os.path.basename(__file__)) as tf:
    tf_directory = os.path.dirname(tf.name)
1
hd1

とにかく、必要な場合はpathtempfileディレクトリを使用できますtempfile.gettempdir()

0
Papageno