7

ファイル'file1.txt'のパスを次のように/home/bentley4/Desktop/sc/file1.txt 言います私の現在の作業ディレクトリを次のように言います/home/bentley4

import os
os.path.abspath('file1.txt')

戻り値/home/bentley4/file1.txt

os.path.exists('file1.txt')

を返しますFalse。私が行った場合

os.path.abspath('file_that_does_not_exist.txt')

戻りますが/home/bentley4/file_that_does_not_exist.txt 、これも正しくありません。このファイルは私のコンピューターにも存在しません。現在作業しているディレクトリから正しい絶対パスを取得する方法はありますか?(新しい関数の定義は別として)

したがって、これは、既存のファイルと同じディレクトリにいる場合、またはそのファイルのディレクトリのパスから1つ以上離れたディレクトリにいる場合にのみ機能しますか?

4

5 に答える 5

13

os.path.abspath(filename)現在の作業ディレクトリから見た絶対パスを返します。ファイルが実際に存在するかどうかはチェックしません。

の絶対パスが/home/bentley4/Desktop/sc/file1.txt必要で、そこにいる場合は、/home/bentley4を使用する必要がありますos.path.abspath("Desktop/sc/file1.txt")

于 2012-04-05T09:19:59.503 に答える
1

abspathはパスを作成するだけで、既存のファイルについては何もチェックしません。

ドキュメントから:

ほとんどのプラットフォームでは、これはnormpath(join(os.getcwd()、path))と同等です。

于 2012-04-05T09:22:31.123 に答える
0

でパスを取得しますos.path.abspath(__file__)

于 2012-04-05T09:25:07.670 に答える
0

問題は、以前にcwdos.chdir(another_path)を使用して変更され、現在の実行のコンテキストでまだロードされていることです。したがって、another_pathでのタスクの使用が終了した後、修正は元のパスを復元する必要があります。
例 :

  original_path = os.getcwd()
  os.chdir(another_path) 
  # here perform some operation over another_path
  os.chdir(original_path ) # here is the restore of the original path
于 2017-05-03T13:06:46.960 に答える
0

私は同じ問題に取り組んでいましたが、これを見つけました。お役に立てば幸いです。

os.path.join(root、f)

于 2020-02-03T20:49:51.513 に答える