2017-06-27 30 views
2

参考までに。絶対パスは、コンピュータ上の一部の場所への絶対パスです。相対パスは、現在の作業ディレクトリ(PWD)に関するファイルへのパスです。絶対パスと相対パスをPythonで使用する場合

絶対パス:例えば 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がの作品存在し、その場合、これはTRUEを返します。

さて、私が書く代わりにあれば、

os.path.exists("C:/users/admin/docs/stuff.txt")

はこれもTRUEを返します。

もう一方を使用する必要がある場合は、一定の時間がありますか? Pythonがパスを探す方法についての方法はありますか?まず最初に試しますか?

ありがとうございます!

+0

絶対にos.path.getsize()に絶対パスしか使えないので、私はさらに混乱しています。 – samGon

+0

絶対パスを使用するときに問題が発生したことを思い出すことはできません...内部でどのように処理されているのでしょうか。 –

答えて

2

おそらく最大の考慮は移植性です。コードを別のコンピュータに移動し、他のファイルにアクセスする必要がある場合、その他のファイルはどこにありますか?プログラムと同じ場所にある場合は、相対アドレスを使用してください。同じ絶対位置にある場合は、絶対アドレスを使用します。モジュールディレクトリを決定するために

my_module_directory = os.path.dirname(__file__) 

:あなたはファイルパス(というよりも、Pythonのネイティブインポートツール)を使用して自分自身の中の資産にアクセスするモジュールを構築している場合

+1

一般的に、私が特定のフォルダを使用しているプログラムは一般的に嫌です。 Python自体があなたのコードをあなたが変更できない正確なフォルダにあると主張したとしたらどうでしょうか?しかし時にはそれは他のものよりも重要です。 – Fhaab

0

、あなたはこのようなステートメントを使用する必要があります。これにより、モジュールは他のスクリプトからインポート可能で、システム内の任意の場所から呼び出し可能です。

編集:モジュール内にunittestスイートを作成する場合、これは非常に重要です。その例については、idlelib test suiteを参照してください。

関連する問題