参考のため。絶対パスは、コンピューター上の任意の場所への絶対パスです。相対パスは、現在の作業ディレクトリ(PWD)に対するファイルへのパスです。例えば:
絶対パス:_C:/users/admin/docs/stuff.txt
_
PWDが_C:/users/admin/
_の場合、_stuff.txt
_への相対パスは次のようになります:_docs/stuff.txt
_
PWD +相対パス=絶対パスであることに注意してください。
かっこいい。ここで、ファイルが存在するかどうかを確認するスクリプトをいくつか作成しました。
os.chdir("C:/users/admin/docs") os.path.exists("stuff.txt")
_stuff.txt
_が存在し、それがworksの場合、これはTRUE
を返します。
さて、代わりに私が書いた場合、
os.path.exists("C:/users/admin/docs/stuff.txt")
これはTRUE
も返します。
どちらか一方をもう一方を使用する必要がある明確な時間はありますか? pythonがパスを探す方法についての方法論はありますか?それは最初に一方を試し、次にもう一方を試しますか?
ありがとう!
最大の考慮事項は、おそらく移植性です。コードを別のコンピューターに移動し、他のファイルにアクセスする必要がある場合、他のファイルはどこにありますか?プログラムに対して同じ場所にある場合は、相対アドレスを使用します。同じ絶対位置にある場合は、絶対アドレスを使用します。
ユーザーがスクリプトを実行する場所がわからない場合は、os
および__file__
を使用してユーザーのシステムの絶対パスを計算するのが最善です。
__file__
は、すべてのPythonスクリプトに設定されているグローバル変数であり、それを含む*.py
ファイルへの相対パスを返します。
import os
my_absolute_dirpath = os.path.abspath(os.path.dirname(__file__))