Pythonでカレントディレクトリ(現在の作業ディレクトリ)を取得するには、osモジュールやPathlibモジュールを使う方法が挙げられます。最近ではpathlibの利用も増えてきているようです。
- osモジュール: os.getcwd()
- pathlibモジュール: class Path.cwd()
本記事ではこれらの関数の使い方について、具体例を挙げながらまとめます。
osモジュールを使う方法
os.getcwd() を使います。
引数は特にありません。現在の作業ディレクトリを文字列で返します。
# osモジュールをインポート
>>> import os
>>> os.getcwd()
'/home/hibikisan/folder01'
尚、ディレクトリを移動するには、os.chdir() を使います。
>>> os.chdir('./folder02')
# 確認
>>> os.getcwd()
'/home/hibikisan/folder01/folder02'
存在しないディレクトリを指定するとエラーとなります。
>>> os.chdir('./folder99')
Traceback (most recent call last):
File "<stdin>", line 1, in
FileNotFoundError: [Errno 2] No such file or directory: './folder99'
参考)現在の作業ディレクトリの呼び方について
カレントフォルダ、カレントディレクトリが一般的でしょうか。
Pythonの公式リファレンスでは、現在の作業ディレクトリ(Currrent working directory)と記述されています。
※関数名に含まれるcwdは、このcurrent working directoryの頭文字ですね
カレントフォルダ、カレントディレクトリが一般的でしょうか。
Pythonの公式リファレンスでは、現在の作業ディレクトリ(Currrent working directory)と記述されています。
※関数名に含まれるcwdは、このcurrent working directoryの頭文字ですね
pathlibモジュールを使う方法
具象パスpathlib.Path()のcwd() メソッドを使います。
具体的には下記です。
# pathlibモジュールをインポート
>>> import pathlib
# Pathインスタンスを作成
>>> p = pathlib.Path()
# カレントディレクトリの取得
>>> p.cwd()
PosixPath('/home/hibikisan/folder01')
Pathオブジェクトは文字列への変換も可能です。
# 文字列への変換も可能
>>> str(p.cwd())
'/home/hibikisan/folder01'
尚、この関数はos.getcwd()を呼び出しています。cwd()メソッドのソースコード(下記)を参照。
@classmethod def cwd(cls): """Return a new path pointing to the current working directory (as returned by os.getcwd()). """ return cls(os.getcwd())
Lib/pathlib.py より引用
参考)pathlib — オブジェクト指向のファイルシステムパス
確認した環境
- OS: Ubuntu20.04LTS@Window 10 WSL2
- Python3.9.0
まとめ
Pythonでカレントディレクトリを取得する方法として、下記2つの方法を紹介しました。
- osモジュールを使う方法: os.getcwd()
- pathlibモジュールを使う方法: Path.cwd()
コメント
[…] […]