2011-01-13 4 views
10

..のようなパス演算子をPythonで解決する簡単な方法はありますか?たとえば、変換する関数呼び出しがあります:/../../test/../path/pathPythonの '../../'パスの修正

答えて

19

os.path.realpath()を使用すると、正規パスを取得できます。正規化された相対パスを取得するには、os.path.normpath()を使用します。

+0

のrealpath()は、一般的な機能です。完璧に動作します。ありがとう。 – rook

2

あなたはos.pathモジュールでabspathを使用することができますos.path

5

から機能os.path.abspathを使用することができます。

os.path.abspath(パス)

リターンパス名のパスの正規化された絶対 バージョン。ほとんどの プラットフォームでは、これは normpath(join(os.getcwd()、path))と同等です。

3

あなたがpathlibライブラリを使用している場合は、使用する方法はresolveです:

In [304]: print(p) 
/group_workspaces/cems2/fiduceo/Users/gholl/logs/2016/08/10/srf_errorprop/../../../../../scratch/accidentally_deleted_shift_log 

In [305]: print(p.resolve()) 
/group_workspaces/cems2/fiduceo/Users/gholl/scratch/accidentally_deleted_shift_log 
関連する問題