Pythonで絶対パスと相対パスの判定・変換する方法

Pythonでファイル操作をするときに重要なことがパスの指定方法です。絶対パスと相対パスでは大きな違いあります。また、ファイルが存在するか否かも重要ですね。

今回は、フォルダが存在するかどうかと、絶対パスと相対パスの判定方法、変換方法を紹介します。

この内容を理解するにあたり、ルートディレクトリ、カレントディレクトリ、相対パス、絶対パスのを知っておく必要があります。

関連記事

今回は「ルートディレクトリ・カレントディレクトリ・ファイルパス」の説明をします。 もし、「ディレクトリ」という言葉が分からない場合は下の記事をご覧ください。 [sitecard subtitle=関連記事 url="https[…]

関連記事

パソコンを使ったことがあるのなら一度は聞いたことがあるとは追うこれらの言葉「ファイル・フォルダ・ディレクトリ」の違いを説明していきたいと思います。 本棚に本がたくさん入っているようにフォルダ(ディレクトリ)の中にファイルが入っている[…]

ファイルパスとは?

絶対パスとは?

ルートディレクトリから表したパスを絶対パスと言います。なので先頭が「C」や「D」などのドライブ名から始まります。

(例)C:\Desktop\blog\sample2.txt

MacではバックスラッシュでWindwsでは円マーク(¥)でつなげます。

相対パスとは?

カレントディレクトリから表したパスを相対パスと言います。絶対パスと相対パスの書き方は以下の表で対応させています。

ディレクトリ相対パス絶対パス
カレントディレクトリ. (.\)C:\Programs\Python\Python38
一つ上のディレクトリ..\(..)C:\Programs\Python
二つ上のディレクトリ..\..\(..\..)C:\Programs
一つ下のディレクトリ.\DocC:\Programs\Python\Python38\Doc

相対パスの指定方法はカッコ内のように書いてもOKです。ドット一個ならカレントディレクトリで、2個なら一つ上のディレクトリに戻ると考えておきましょう。

また、コードに書くときはエスケープ文字として「\\(¥¥)」と書くか、raw列を使って書きましょう。

関連記事

Pythonで文字列を扱うときには細かいルールがたくさんあります。今回はraw列やエスケープ文字の解説をしていきますが、その前にそのルールを確認しておきましょう。 文字列のルール クォートで挟んで表す。シングルクォート(’)で[…]

Pythonでファイルパスを変換

Pythonのosモジュールをつかいます。

python-osの公式サイト

os.path.abspath関数(絶対パス)

  • 引数に相対パスを渡す
  • 引数に渡した相対パスを絶対パスに変換

os.path.relpath関数(相対パス)

  • 第2引数から第1引数への相対パスを返す
  • 第2引数なしならカレントディレクトリからの相対パスを返す

一つ目は引数を1個しか渡していないので自動的にカレントディレクトリからの相対パスが返されます。二つ目は後ろの引数から前の引数への相対パスが返されます。

ファイルパスを判定

os.path.isabs関数

  • 絶対パスのときはTrueを返す
  • 相対パスのときはFalseを返す

まとめ

  • os.path.abspath関数:
    • 相対パスを絶対パスに変換
  • os.path.relpath関数
    • パス間の相対パスを返す
  • os.path.isabs関数
    • 絶対パスならTrue・相対パスならFalse

関連記事

プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]