パスの取得と操作

パスの取得と操作

パス (path)

 パス (path) とはファイルあるいはフォルダ (ディレクトリ) の位置を示す情報です。パスの記述形式は OS ごとに異なります。たとえば Windows の場合、ファイルやフォルダをバックスラッシュ (\) で区切って階層構造を表記します。

 C:\Users\blogcat\Desktop\mydata.csv

 Mac や Linux では

 /home/desktop/mydata.csv

のように、階層をスラッシュ (/) で区切ります。

絶対パス(absolute path)

 階層構造の頂点 (ルートディレクトリ) を起点に目的のファイルやフォルダまでの経路情報をすべて記述したパスを 絶対パス(absolute path) または フルパス (full path)とよびます。

 Windows であれば、ドライブ名から始まる

 C:\Users\blogcat\Desktop\mydata.csv

のような記述が絶対パスです。Mac や Linux ではルートディレクトリをバックスラッシュで表し、

 /home/desktop/mydata.csv

のように記述すると絶対パスとなります。
 

相対パス (relative path)

 作業フォルダ (カレントディレクトリ) を起点に目的のファイルやフォルダまでの経路情報を記載したパスを 相対パス(relative path) といいます。

 たとえば、Windows で作業フォルダの下に blogcat というフォルダがあって、その下に mycode.ipynb というファイルが存在する場合は

 blogcat\mycode.ipynb

のように指定します。Mac や Linux であれば現在の位置を表すドット (.) を先頭に添えて

 .blogcat/mycode.ipynb

と記述します。
 

Windowsのパス

 Windows ではバックスラッシュ (\) でパスを区切るので、Python で Windows のパスを文字列として扱う場合は、raw 文字 r などを使ってバックスラッシュ (\) をエスケープしておきます。

file_path = r"C:\Users\blogcat\mycode.ipynb"

 後述する os.path.join() を使えば、OS に合わせたパスを組み立てることができます。
 

独学プログラマー Python言語の基本から仕事のやり方まで

中古価格
¥1,537から
(2019/7/30 20:25時点)

パスの取得や操作に用いる関数

os.getcwd()

 os.getcwd() は作業フォルダ (カレントディレクトリ) の絶対パスを取得します。

# PATH_01
import os

# 作業フォルダを取得
folder_name = os.getcwd()

print(folder_name)
C:\Users\blogcat

os.path.abspath()

 os.path.abspath() に文字列を渡すと、作業フォルダの絶対パスに文字列を連結したパスを生成します。

# PATH_02
from os import path

# 作業フォルダの下に"mybook"を連結したパスを生成
p = path.abspath("mybook")

print(p)
C:\Users\blogcat\mybook

os.path.join()

 os.path.join() に複数の文字列を渡すと、実行中の OS の区切り文字を使ってパスを組み立てます。

# PATH_03

from os import path

# 使用中のOSに合わせてパスを組み立てる
p = path.join("C:", "Users", "blogcat", "mycode.ipynb")
print(p)
C:Users\blogcat\mycode.ipynb

 ファイル名やフォルダ名のリストを作って os.path.join() に渡すこともできます。その場合は引数の先頭にアスタリスク (*) を付けます。

# PATH_04

name_list = ["C:", "Users", "blogcat", "mycode.ipynb"]

# 使用中のOSに合わせてパスを組み立てる
p = path.join(*name_list)

print(p)
C:Users\blogcat\mycode.ipynb