1. ホーム
  2. python

[解決済み] 常に現在のモジュールからの相対パス」を作るには?

2023-06-24 05:27:14

質問

例えば、次のようなモジュールを持っているとします。

myfile = open('test.txt', 'r')

そして、'test.txt'ファイルは同じフォルダーにあります。モジュールを実行すれば、ファイルは正常に開かれます。

さて、そのモジュールを別のフォルダにある別のモジュールからインポートしたとします。そのファイルが、そのコードがあるモジュールと同じフォルダで検索されないとします。

では、同じフォルダにある相対パスのファイルを最初にモジュールが検索するようにするにはどうしたらよいでしょうか。

を使うことで様々な解決策があります。 __file__ または" os.getcwd() といった具合ですが、open()やfile()に渡す文字列の中に同じ特殊文字があるような、もっとすっきりした方法があるといいのですが...。

どのように解決するのですか?

解決策としては __file__ であり、かなりきれいです。

import os

TEST_FILENAME = os.path.join(os.path.dirname(__file__), 'test.txt')