Pythonでカレントディレクトリのパスを取得・移動、ファイル一覧を取得
Pythonでカレントディレクトリのパスや、含まれるファイル一覧を取得する方法について解説します。
Pythonが実行されているディレクトリ(カレントディレクトリ)の操作についてまとめます。
ファイルの操作をする場合に、相対パス・絶対パスなどでフォルダの情報を取得する場面などで利用します。
Pythonでファイルやディレクトリを操作するためにはos
モジュールを使います。os
モジュールは標準モジュールなので、pipなどでインストールする必要はなく、ファイル内でimport
すれば利用することができます。
カレントディレクトリを取得する(getcwd, abspath)
Pythonのプログラムが実行されているディレクトリ(Pythonのプログラムを書いたファイルが入っているフォルダ)のパスを取得するには、os
モジュールのgetcwd()
メソッドとabspath()
メソッドを利用します。
getcwd()
メソッドはカレントディレクトリの絶対パスを表す文字列を返します。ちなみに、cwdとはCurrent Working Directoryの略です。
abspath()
メソッドは、引数で指定した相対パスの絶対パスを文字列で返します。
# カレントディレクトリを取得する
import os
# カレントディレクトリの絶対パスを文字列で返す
path = os.getcwd()
print(path)
# /Users/username/project/python-test
print(type(path))
# <class 'str'>
# abspathで現在のディレクトリを入力すれば、絶対パスを取得できる
path = os.path.abspath(".")
print(path)
# /Users/username/project/python-test
print(type(path))
# <class 'str'>
カレントディレクトリのファイル一覧を取得する(listdir)
カレントディレクトリに含まれるファイル一覧を取得するには、os
モジュールのlistdir()
メソッドを利用します。
listdir()
の引数には、ファイルの一覧を取得したいディレクトリのパスを指定します。戻り値は、指定したパスのフォルダに含まれるファイルとディレクトリ名を並べたリストになります。
# カレントディレクトリのファイル一覧を取得する
import os
path = os.getcwd()
print(path)
# /Users/username/project/python-test
# ディレクトリに含まれるファイルとフォルダ名をリストで返す
ls = os.listdir(path)
print(ls)
# ['sample.xlsx', 'sample-folder', 'sample.txt']
カレントディレクトリを変更する(chdir)
カレントディレクトリを変更するには、os
モジュールのchdir()
メソッドを利用します。引数に移動先のパスを指定することで、カレントディレクトリが変更されます。指定するパスは絶対パスでも相対パスでも良く、Linuxのcd
コマンドと同じような指定の方法でディレクトリを移動することができます。
ちなみにchdir
は、Change Directoryの略です。
# カレントディレクトリを変更する
import os
# 現在のディレクトリ
print(os.getcwd())
# /Users/username/project/python-test
# 現在のディレクトリに含まれるファイルとディレクトリ
ls = os.listdir(os.getcwd())
print(ls)
# # ['child-folder', 'sample.xlsx', 'sample-folder', 'sample.txt']
# 子ディレクトリの一つに移動
os.chdir("child-folder")
# 現在のディレクトリが変更された
print(os.getcwd())
# /Users/username/project/python-test/child-folder
# 相対パス指定で、もともといたディレクトリの一つ上の階層に移動
os.chdir("../..")
print(os.getcwd())
# /Users/username/project