1. ホーム
  2. python

[解決済み] Python 3 を使ってカレントワーキングディレクトリを取得する方法は?

2023-06-26 02:25:15

質問

IDLEで以下のスクリプトを実行すると

import os
print(os.getcwd())

という出力が得られます。

D:\testtool

と表示されますが、cmdプロンプトから実行すると

c:\Python33>python D:\testtool\current_dir.py
c:\Python33

IDLEで得たのと同じ結果を得るには?

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

IDLE は現在の作業ディレクトリを実行されたスクリプトの場所に変更するようですが、cmd でスクリプトを実行した場合はそのようなことはなく、CWD をそのままにしておきます。

現在の作業ディレクトリをスクリプトを含むものに変更するには、次のようにします。

import os
os.chdir(os.path.dirname(__file__))
print(os.getcwd())

__file__ 変数は、ファイルからスクリプトを実行する場合にのみ利用可能で、ファイルへのパスを含んでいます。詳しくはこちら。 Python __file__ 属性は絶対か相対か?