Pythonでファイルの絶対パスを取得する方法【初心者向け】

初心者向けにPythonでファイルの絶対パスを取得する方法について解説しています。パスとはファイルやフォルダの場所を示すものです。同じく場所を表す相対パスとの違いや、Pythonで絶対パスを取得する際の書き方を学習しましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Pythonでファイルの絶対パスを取得する方法について解説します。

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事をまずご覧ください。

 

なお本記事は、TechAcademyのPythonオンライン講座の内容をもとにしています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

ファイルの絶対パスを取得する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

絶対パスとは

パスとは、パソコンでフォルダやファイルの場所を表します。フォルダやファイルの区切りは、Windows であれば「¥」、 Mac や Linux であれば「/」で表します。パスには2種類あり、絶対パスと相対パスがあります。

絶対パス

パスで一番上の位置をルートといいます。Windows であればドライブ毎に「C:¥」や「D:¥」、 Mac や Linux であれば「/」がルートとなります。このルートからの位置を示したのが絶対パスです。絶対パスは、フォルダやファイルの位置を一意に指定できるという利点があります。

Windows

C:¥work¥hello.py

Mac / Linux

/home/user1/work/hello.py

 

相対パス

現在位置を起点とした位置を示したのが相対パスです。現在位置とは、プログラムを実行しているのであれば、そのプログラムを実行中のフォルダとなります。

例えば、あるプログラムを実行している場合、配下の「data」フォルダの指定は以下のようになります。Mac や Linux の場合、現在位置を表す「.」を付けるのを忘れないようにしましょう。

Windows

data

Mac / Linux

./data

なお、Windows であればコマンドプロンプト、 Mac であればターミナル、 Linux ならシェルを開いた際、現在位置の相対パスが表示されています。以下のコマンドで絶対パスを確認することもできます。

Windows

cd

Mac /Linux

pwd

 

絶対パスを取得する方法

Python では、標準ライブラリの os により、絶対パスを取得することができます。

os.path.abspath(相対パス)

 

[PR] Pythonで挫折しない学習方法を動画で公開中

実際に絶対パスでファイルを取得してみよう

今回のサンプルプログラムでは、プログラムがあるフォルダに「hello.txt」というファイル作成し、その内容を読み込んで表示します。ファイルのパスは 、すべて絶対パスで指定しています。

import os

# 絶対パスを取得
file = os.path.abspath("hello.txt")
print(file)

# 絶対パスを指定して、ファイルに書き込み
fileobj = open(file, "w", encoding = "utf_8")
fileobj.write("こんにちは\n")
fileobj.write("Hello\n")
fileobj.write("你好\n")
fileobj.close()

# 絶対パスを指定して、ファイルの内容を表示
fileobj = open(file)
data = fileobj.read()
fileobj.close()
print(data)

実行結果は以下のようになります。なお、実行結果の1行目は環境により異なります。今回は Mac で実行した結果となります。

/Users/user1/work/hello.txt
こんにちは
Hello
你好

 

この記事を監修してくれた方

太田和樹(おおたかずき)
ITベンチャー企業のPM兼エンジニア

普段は主に、Web系アプリケーション開発のプロジェクトマネージャーとプログラミング講師を行っている。守備範囲はフロントエンド、モバイル、サーバサイド、データサイエンティストと幅広い。その幅広い知見を生かして、複数の領域を組み合わせた新しい提案をするのが得意。

開発実績:画像認識技術を活用した駐車場混雑状況把握(実証実験)、音声認識を活用したヘルプデスク支援システム、Pepperを遠隔操作するアプリの開発、大規模基幹系システムの開発・導入マネジメント

地方在住。仕事のほとんどをリモートオフィスで行う。通勤で消耗する代わりに趣味のDIYや家庭菜園、家族との時間を楽しんでいる。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

オンラインのプログラミングスクールTechAcademyではPythonを使って機械学習の基礎を学ぶPythonオンライン講座を開催しています。

初心者向けの書籍を使って人工知能(AI)や機械学習について学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。