Python 2.6のtemp
ディレクトリへのパスを取得するクロスプラットフォームの方法はありますか?Pythonで一時ディレクトリを取得するクロスプラットフォームの方法
たとえば、Linuxでは/tmp
、XP未満の場合はC:\Documents and settings\[user]\Application settings\Temp
となります。
Python 2.6のtemp
ディレクトリへのパスを取得するクロスプラットフォームの方法はありますか?Pythonで一時ディレクトリを取得するクロスプラットフォームの方法
たとえば、Linuxでは/tmp
、XP未満の場合はC:\Documents and settings\[user]\Application settings\Temp
となります。
これはtempfileモジュールです。
一時ディレクトリを取得する機能があり、名前付きまたは名前のない一時ファイルとディレクトリを作成するためのショートカットもいくつかあります。
例:それはマニュアルに従って、一時ディレクトリの検索方法
import tempfile
print tempfile.gettempdir() # prints the current temporary directory
f = tempfile.TemporaryFile()
f.write('something on temporaryfile')
f.seek(0) # return to beginning of file
print f.read() # reads data back from the file
f.close() # temporary file is automatically deleted here
は完全を期すために、ここにあります:
TMPDIR
環境変数で指定されたディレクトリ。TEMP
という名前のディレクトリです。TMP
という名前のディレクトリです。Wimp$ScrapDir
環境変数で指定されたディレクトリに
C:\TEMP
、C:\TMP
、\TEMP
、および\TMP
、そのためです。/tmp
,/var/tmp
、および/usr/tmp
の順になります。OSXは私には ' '$ tmpdir'がどのように設定されているかによって、'/tmp'ではなく/ var/folders/
:
print tempfile.gettempdir()
私にとっては、私のWindowsマシン上で、私が取得:
c:\temp
と私のLinuxマシン上の私が手:
/tmp
を
@ noskloのanswerから重要なビットをとり、サンドボックスでdir:で
import os
from tempfile import gettempdir
tmp = os.path.join(gettempdir(), '.{}'.format(hash(os.times())))
os.makedirs(tmp)
設定が終了したら、あなたは簡単に自分の後にクリーンアップすることができますこの方法(プライバシー、リソース、セキュリティのためには、何でも):
from shutil import rmtree
rmtree(tmp, ignore_errors=True)
これは、Googleのようなものをアプリケーションに似ていますChromeとLinux systemd
彼らはちょうどより短い16進ハッシュとアプリケーション固有の接頭辞を使用して、その存在を「広告する」。
:
import platform
import tempfile
tempdir = '/tmp' if platform.system() == 'Darwin' else tempfile.gettempdir()
のMacOS、すなわちダーウィン、tempfile.gettempdir()
とos.getenv('TMPDIR')
にかかる'/var/folders/nj/269977hs0_96bttwj2gs_jhhp48z54/T'
ような値を返すためです。それは私が欲しくないものです!
http://docs.python.org/library/tempfile.htmlにあるtempfileモジュールを参照してください。 –
pythonistではありませんが、テンポラリファイル/ディレクトリを作成するには[これらの](http://docs.python.org/library/tempfile.html#tempfile.mkdtemp)メソッドを使うべきです – skrat