Pythonでアプリフォルダー内のファイルを使用するにはどうすればよいですか?もちろんプラットフォームに依存しない...これに似たもの:
#!/bin/sh
mypath=${0%/*}
LIBDIR=$mypath/modules
OS固有のパスを処理するos.path
とその関数を使用できます。
>>> import os
>>> os.path.join('app', 'subdir', 'dir', 'filename.foo')
'app/subdir/dir/filename.foo'
Windowsでは、バックスラッシュを付けて印刷する必要があります。
import os
os.path.join(os.path.curdir, 'file.name')
または
import os
os.path.join(os.path.dirname(__file__), 'file.name')
モジュール(2)か単一のスクリプト(1)か、および同じディレクトリから呼び出すかどうかによって(1)、または別のもの(2)。
あなたの質問にある「試み」を見て、私はあなたが(1)が欲しいと思うと思います。
Python 3.4+では、 pathlib
:を使用できます。
_from pathlib import Path
libdir = Path(__file__).resolve().with_name('modules')
_
仕組み:___file__
_属性には、モジュールがロードされたファイルのパス名が含まれます。これを使用してPath
オブジェクトを初期化し、 resolve()
メソッドを使用して絶対パスを作成し、 with_name()
メソッド。
__file__
にはモジュールの場所が含まれます。 os.path
の関数を使用して、そこからディレクトリを抽出します。