一時ファイル
さて、
業務ではpythonを使用しているのですが、
そこで今日は久々にtempfileモジュールを使う機会がありまして、
一時ファイルを扱っていました。
tempfile.TemporaryDirectory()やtempfile.TemporaryFile()などですね。
常識事ではありますが、自分の頭の中を整理するために簡単に記載したいと思います。
…
一時ファイルとは?
その名の通り、一時的なファイルです。
基本的には使用が終わると自動的に破棄されます。
(厳密にはプロセスが終わると、ですが。プロセスやスレッドもブログで纏めようかな)
本物のディレクトリのようにファイルを格納することができます。
こちらも一時ファイルと同じように、自動的に破棄されます。
倉庫は一時的に物を置いておく場所ですが、自動的には削除されないですね。
例えばpythonなら下記のように、
withブロックにいる間はtempfile(tempdirectory)が存続しています。
pythonのwith句はわかりやすくて好きです。
C#にもusingステートメントありますが、ing付くと文字数長く感じません?
いっても「using」5文字じゃねぇか、本当に目が悪いやつだなぁ!?
=====○)д`);.・;゛;ブッ
…
勉強しているGoでも触ってみようと思います。
あちらは自動で削除されないみたいですね。。。。
どこに一時ファイルは作成されるのか?
これはOS毎に違っております。
(windowsはフォルダ、unixはディレクトリと呼びます。個人的にはどっちでもいいんですけどね。)
windowsではTEMPあるいはTMPの環境変数で設定してあるフォルダになります。
初期設定では、
C:\ユーザ\ユーザー名\AppData\Local\Temp
となっているはずです。
勿論、環境変数内のPATHを変更すれば、
一時ファイルの出力先も変更した場所になります。
ある意味、ユーザの設定に依存している形にはなりますね。
一時ファイルの出力先になっております。
こちらは常に決まっているので
OSの設定に依存していますね。
個人的にはunix系統の方が好きですね。
いつも同じ場所にあるという感じで。
windowsも同じ場所にあるといえばあるのですが、
一度PATHを確認しないと確信が持てませんからね。。。
しかし、実運用上では気を付ける必要があります。
セキュリティ上の問題ですね。
常に決まった場所にあるということは、狙う場所がバレているということですから。
下記参照ください。
…
簡単ではありますが、纏めてみました。
日々、基本的な知識が蓄積されているのがいい感じですね。