Tempfileライブラリを使用して作成された一時ファイルのファイルパスを取得することが可能かどうか疑問に思っていました。基本的に、私はいくつかのデータを取り込み、そのデータに基づいて一時的なcsvファイルを生成する関数を作成しようとしています。この一時ファイルのパスを取得する方法があるかどうか疑問に思っていましたか?
使用する tempfile.NamedTemporaryFile
は、名前を付けて一時ファイルを作成し、.name
オブジェクトの属性。
この名前の使用方法にはプラットフォーム固有の制限があることに注意してください。 documentation はこう言っています:
名前を使用してファイルを再度開くことができるかどうか、名前付きの一時ファイルがまだ開いているかどうかは、プラットフォームによって異なります(Unixではこのように使用できますが、Windows NT以降では使用できません)。
tempfile.NamedTemporaryFileには、必要な.dirプロパティがあります。
編集:いいえ、それは.name
、@ Barmarではありませんが、tempfileのソースコードを調べても、.dir
プロパティはありません。ただし、次のようにcan.name
プロパティをos.path
のdirname
メソッドと組み合わせて使用します。
with tempfile.NamedTemporaryFile(suffix='.csv', prefix=os.path.basename(__file__)) as tf:
tf_directory = os.path.dirname(tf.name)
とにかく、必要な場合はpathのtempfileディレクトリを使用できますtempfile.gettempdir()