Pythonで相対位置にあるファイルを開く [重複] 質問する

Pythonで相対位置にあるファイルを開く [重複] 質問する

私の Python コードが というディレクトリで実行されmain、アプリケーションが にアクセスする必要があるとしますmain/2091/data.txt

どのように使用すればよいですかopen(location)?パラメータは何にすればよいですかlocation

以下の簡単なコードが機能することがわかりました。何か欠点はありますか?

file = "\2091\sample.txt"
path = os.getcwd()+file
fp = open(path, 'r+');

ベストアンサー1

この種のものの場合、実際の作業ディレクトリがどこであるかに注意する必要があります。たとえば、ファイルがあるディレクトリからスクリプトを実行できない場合があります。この場合、相対パスのみを使用することはできません。

必要なファイルがスクリプトが実際に配置されている場所の下のサブディレクトリにあることが確実な場合は、 を使用して__file__ここで調べることができます。__file__は、実行しているスクリプトが配置されている場所への完全なパスです。

したがって、次のように操作することができます。

import os
script_dir = os.path.dirname(__file__) #<-- absolute dir the script is in
rel_path = "2091/data.txt"
abs_file_path = os.path.join(script_dir, rel_path)

おすすめ記事